在Python中查詢包含所有母音的子字串


假設我們有一個小寫字母字串,我們需要找到至少包含所有母音一次且不包含任何子音的子字串。

因此,如果輸入類似於“helloworldaeiouaieuonicestring”,則輸出將為['aeiou', 'aeioua', 'aeiouai', 'aeiouaiu', 'eioua', 'eiouai', 'eiouaiu']

為了解決這個問題,我們將遵循以下步驟:

  • n := s的大小

  • 對於範圍從0到n的i,執行:

    • my_map := 一個新的對映

    • 對於範圍從i到n的j,執行:

      • 如果s[j]不是母音,則

        • 退出迴圈

      • my_map[s[j]] := 1

      • 如果my_map的大小等於5,則

        • 顯示s[從索引i到j+1]

示例

讓我們來看下面的實現以更好地理解:

線上演示

def isVowel(x):
   if x in ['a','e','i','o','u']:
      return True
   return False
def get_substrings(s):
   n = len(s)
   for i in range(n):
      my_map = dict()
      for j in range(i, n):
         if (isVowel(s[j]) == False):
            break
         my_map[s[j]] = 1
         if (len(my_map) == 5):
            print(s[i:j + 1])
s = "helloworldaeiouaiunicestring"
get_substrings(s)

輸入

"helloworldaeiouaiunicestring"

輸出

aeiou
aeioua
aeiouai
aeiouaiu
eioua
eiouai
eiouaiu

更新於:2020年8月19日

748 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.