소문자 알파벳으로 된 문자열이 있다고 가정하면 모든 모음이 포함된 하위 문자열을 적어도 한 번은 찾아야 하며 해당 하위 문자열에 자음이 존재하지 않습니다.
따라서 입력이 "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