Python 程式:查詢按順序排列的所有母音的最長子字串
假設我們有一個字串 s,其中只包含英文母音,我們需要找到 s 的最長美麗子字串的長度。如果找不到這樣的子字串,則返回 0。如果一個字串滿足以下條件,則稱其為美麗的:
它必須包含所有 5 個母音至少一次。
字母必須按字母順序排序。
因此,如果輸入類似於 s = "aaioaaaaeiiouuooaauu",則輸出將為 10,因為子字串 "aaaaeiiouu" 是美麗的。
為了解決這個問題,我們將遵循以下步驟:
vowels := 所有母音的列表 ['a', 'e', 'i', 'o', 'u']
l := 0, r := 0, longest := 0
當 l < s 的大小,執行以下操作:
valid := True
對於 vowels 中的每個母音,執行以下操作:
valid := valid 為真並且 (r < s 的大小且 s[r] 與母音相同)
當 r < s 的大小且 s[r] 與母音相同,執行以下操作:
r := r + 1
如果 valid 為真,則:
longest := longest 和 (r - l) 中的最大值
l := r
返回 longest
示例
讓我們看看以下實現以獲得更好的理解:
def solve(s):
vowels = ['a', 'e', 'i', 'o', 'u']
l, r, longest = 0, 0, 0
while (l < len(s)):
valid = True
for vowel in vowels:
valid &= (r < len(s) and s[r] == vowel)
while (r < len(s) and s[r] == vowel):
r += 1
if (valid):
longest = max(longest, r - l)
l = r
return longest
s = "aaioaaaaeiiouuooaauu"
print(solve(s))輸入
"aaioaaaaeiiouuooaauu"
輸出
10
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP