在 Python 中查找其字符可以重新排列以形成给定单词的子字符串的数量
假设我们有一个字符串 S(所有字母都小写),我们需要找到所有长度为四的子字符串的数量,这些子字符串的字符可以重新排列以形成这个单词“bird”。
因此,如果输入类似于“birdb”,则输出将为 2。
为了解决这个问题,我们将遵循以下步骤:
cnt := 0
对于 i 从 0 到 s 的大小 - 3,执行
bird := 一个数组,值为 [0, 0, 0, 0]
对于 j 从 i 到 i + 4,执行
如果 s[j] 与 'b' 相同,则
bird[0] := bird[0] + 1
否则,如果 s[j] 与 'i' 相同,则
bird[1] := bird[1] + 1
否则,如果 s[j] 与 'r' 相同,则
bird[2] := bird[2] + 1
否则,如果 s[j] 与 'd' 相同,则
bird[3] := bird[3] + 1
如果 bird 与 [1,1,1,1] 相同,则
cnt := cnt + 1
返回 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
广告