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