检查字符串是否在python中包含字符

时间:2019-05-24 17:01:16

标签: python python-3.x

我正在尝试比较并查看字符串中是否存在特定字符,但是当我尝试访问另一个字符串中的字符时,它会抛出错误“ int类型的参数不可迭代”。如何在不引起错误的情况下从字符串访问字符?

    def lengthOfLongestSubstring(self, s: str) -> int:
        longStrLen = 0
        totalStrLen = len(s)

        holderString = ""
        holderString += s[0]
        longStrLen = 0

        for i in range(1,totalStrLen-1):

            if s[i] not in holderString:
                holderString += s[i]
            else:
                if longStrLen < len(holderString):
                    longStrLen = len(holderString)
                holderString = 0

        return longStrLen
TypeError: argument of type 'int' is not iterable at Line 
if s[i] not in holderString:

2 个答案:

答案 0 :(得分:3)

您的问题在这条线上:

holderString = 0

您将holderString变量重新分配为整数0。虽然可以迭代字符串,但不能整数。您尝试遍历此行上的新整数:

if s[i] not in holderString:

这会导致错误。

有一种更好的方法来处理返回第一个重复字符的函数。只需使用index()方法:

def findChar(char, string):
    for c in string:
        if c == char: 
             return string.index(c)

答案 1 :(得分:0)

看来,您只需要计算唯一字符,直到找到第一个重复字符。您可以使用一套餐具。

def longest_substring(s: str) -> int:
    seen = set()
    for c in s:
        if c in seen:
            break
        seen.add(c)
    return len(seen)