在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
广告