[英]How to count the number of sub-sequences in a string?
该程序用于计算字符串中子字符串的数量。
测试用例:
字符串ABCDCDC
模式CDC
答案应该是2
但我得到0
。
def count_substring(string, sub_string):
for i in range(0,len(string)-len(sub_string)+1):
count=0
for j in range(0,len(sub_string)):
if(string[i+j]!=sub_string[j]):
break;
if j==len(sub_string):
count=count+1
return count
在for j in range(0,len(sub_string))
循环中for j in range(0,len(sub_string))
的末尾, j
最多可以为len(sub_string)-1
(如果不早休息的话)。 因此, if j==len(sub_string):
始终为False
。 您想要的if j==len(sub_string)-1:
还是else:
意味着您已经到达了for
循环的末尾)。
同样, count = 0
应该在开始而不是在第一个for
循环中初始化:
def count_substring(string, sub_string):
count=0
for i in range(0,len(string)-len(sub_string)+1):
for j in range(0,len(sub_string)):
if(string[i+j]!=sub_string[j]):
break;
else:
count=count+1
return count
字符串是Python中1个字符的子字符串的序列,因此您可以使用内置的count()
方法-换句话说,您不必重新发明轮子并编写自己的函数即可。
test_string = 'ABCDCDC'
sub_string = 'CDC'
print(test_string.count(sub_string)) # -> 2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.