我在这个家庭作业问题上遇到了麻烦。
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.我想知道为什么会这样。谢谢你的帮助。
答案 0 :(得分:3)
你的问题在这里:
else:
count += 1
最终重复计算连续的特殊字符。只需删除这两行。