在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 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告