答案:
def cat_dog(str):
count_cat = 0
count_dog = 0
for i in range(len(str)-2):
if str[i:i+3] == 'dog':
count_dog += 1
if str[i:i+3] == 'cat':
count_cat += 1
return count_cat == count_dog
def count_code(str):
count = 0
for i in range(0, len(str)-3):
if str[i:i+2] == 'co' and str[i+3] == 'e':
count += 1
return count
我很困惑为什么有时他们会从range(len(str))
中减去2或3。我知道为什么你会减去1,因为计数从0开始。
答案 0 :(得分:1)
第一个问题如下:
如果字符串“cat”和“dog”在给定字符串中出现的次数相同,则返回
True
。
“cat”和“dog”都是长度为3的字符串,您希望避免超出字符串本身的长度。
第二个问题也是如此:
返回字符串“code”出现在给定字符串中任何位置的次数,除非我们接受“d”的任何字母,因此“cope”和“cooe”计数。
由于“代码”及其可接受的变体是长度为4的字符串,因此我们将其偏向3,以避免超出我们检查的字符串的长度。