假设我们有一个字符串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