返回最大数量的连续"特殊符号"在字符串s中

时间:2017-12-15 00:53:41

标签: python for-loop

我在这个家庭作业问题上遇到了麻烦。

SPECIAL_SYMBOLS = '!@#$%^&*()_+=[]?/'

def symbol_count(s:str): -> int
    """Return the largest number of consecutive "special symbols" in the 
    string s.
    >>> symbol_count(’c0mput3r’)
    0
    >>> symbol_count(’H! [here’)
    1
    >>> symbol_count(’h3!!&o world@#’)
    3
    """
    lst = []
    count = 0
    for i in range(len(s)-1):
        if s[i] in SPECIAL_SYMBOLS:
            count +=1
            if s[i+1] not in SPECIAL_SYMBOLS:
                lst.append(count)
                count = 0
            else:
                count += 1
    if lst == []:
        return 0
    return max(lst)

然而,对于最后一个例子我得到5而不是3所以我猜我的计数不是重新初始化为0.我想知道为什么会这样。谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

你的问题在这里:

else:
    count += 1

最终重复计算连续的特殊字符。只需删除这两行。