查找其字符可以重新排列以形成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