我已经编写了代码来计算某个单词cat的出现,代码只传递了我的一些测试用例,它没有通过所有测试,特别是边缘情况。请注意,我不允许使用内置函数,如count()和其他许多函数。 这是我的代码:
mystery_string = "my cat your cat"
splitword = mystery_string.split()
sum = 0
for string in splitword:
if string == "cat":
sum += 1
print (sum)
当我将变量mystery_string更改为mystery_string = "catcatcatcatcat!!".
或mystery_string = "cacacat cacacat"
或此mystery_string = "ucatX"
或甚至此mystery_string = ".$cacacatcatcat".
时,代码就会中断。我已经研究过类似问题的stackoverflow但没有解决方案。
答案 0 :(得分:3)
使用count字符串方法。
>>> "catcatcatcatcat!!".count("cat")
5
或者,使用regular expressions:
>>> import re
>>> len(re.findall("cat", "catcatcatcatcat!!"))
5
答案 1 :(得分:1)
实际上有“.count(str)”功能 例如:
catcatcat!ccat".count("cat")
输出4 但如果您不想使用它,您可以执行以下操作
def count(mainstr, substr):
thecount = 0
for i in range(len(mainstr)):
if i <= len(mainstr) - len(substr):
if mainstr[i:i+len(substr)] == substr:
thecount+=1
return thecount
您的代码计算文本中单词的出现次数,但不计算字符串中单词的出现次数......