Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

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