在 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
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP