查找其字符可以重新排列以形成Python中给定单词的子字符串数
假设我们有一个字符串S(所有字母都小写),我们必须找到所有长度为4的子字符串的计数,这些子字符串的字符可以重新排列以形成单词“bird”。
因此,如果输入类似于“birdb”,则输出将为2。
为了解决这个问题,我们将遵循以下步骤-
cnt:=0
对于范围0到s-3的i,执行
如果s[j]与'b'相同,则
否则,当s[j]与'i'相同时,则
否则,当s[j]与'r'相同时,则
否则,当s[j]与'd'相同时,则
如果鸟与[1,1,1,1]相同,则
鸟[0]:=鸟[0]+1
鸟[1]:=鸟[1]+1
鸟[2]:=鸟[2]+1
鸟[3]:=鸟[3]+1
cnt:=cnt+1
bird:=具有[0,0,0,0]的数组
对于范围i至i+4的j,执行
返回cnt
例
让我们看下面的实现以更好地理解-
def number_of_occurrence(s):
cnt = 0
for i in range(0, len(s) - 3):
bird = [0, 0, 0, 0]
for j in range(i, i + 4):
if s[j] == 'b':
bird[0] += 1
elif s[j] == 'i':
bird[1] += 1
elif s[j] == 'r':
bird[2] += 1
elif s[j] == 'd':
bird[3] += 1
if bird == [1,1,1,1]:
cnt += 1
return cnt
s = "birdb"
print(number_of_occurrence(s))输入值
"birdb"
输出结果
2