在lis中查找子字符串

2024-04-20 10:52:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我在学习python,通过观察并尝试解决面试问题。你知道吗

在下面的问题和解决办法。你知道吗

给定一个非空字符串,检查它是否可以通过获取子字符串并将子字符串的多个副本附加在一起来构造。您可以假设给定的字符串仅由小写英文字母组成,其长度不超过10000。你知道吗

示例1:

输入:“abab”

输出:真

说明:它是子串“ab”的两倍。你知道吗

示例2:

输入:“aba”

输出:假

def repeatedSubstringPattern2(self, str):
        """
        :type str: str
        :rtype: bool
        """
        if not str:
            return False

        ss = (str + str)[1:-1]
        print ss
        return ss.find(str) != -1

我的问题是,虽然aba被列为一个错误的例子,但看看解决方案,它给我一种感觉,这是真的。有什么想法吗??我错过了什么?你知道吗

  ss = (aba +aba)[1:-1] --> abaaba[1:-1] --> baaba 
  baaba.find(aba) != -1 --> true??

Tags: 字符串示例return副本findss小写str
1条回答
网友
1楼 · 发布于 2024-04-20 10:52:21

您在这行中使用的逻辑:

ss = (aba +aba)[1:-1]  > abaaba[1:-1]  > baaba 

不正确。当你切片一个列表时,它不包括第二个切片索引中的元素。正确的逻辑是:

ss = (aba +aba)[1:-1]  > abaaba[1:-1]  > baab

相关问题 更多 >