Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tìm chuỗi con chứa tất cả nguyên âm trong Python


Cho chuỗi chữ thường, tìm tất cả chuỗi con chỉ chứa nguyên âm (a,e,i,o,u) và có đủ 5 nguyên âm ít nhất 1 lần.

Ví dụ: "helloworldaeiouaiunicestring" → ['aeiou', 'aeioua', 'aeiouai', 'aeiouaiu', 'eioua', 'eiouai', 'eiouaiu'].

Giải thuật

  • Duyệt vị trí bắt đầu i.
  • Mở rộng j từ i, dừng khi gặp phụ âm.
  • Dùng set/dict theo dõi nguyên âm đã thấy.
  • Khi set có 5 phần tử, in chuỗi con s[i:j+1].

Ví dụ

def isVowel(x):
    return x in 'aeiou'

def get_substrings(s):
    n = len(s)
    for i in range(n):
        seen = set()
        for j in range(i, n):
            if not isVowel(s[j]):
                break
            seen.add(s[j])
            if len(seen) == 5:
                print(s[i:j+1])

s = "helloworldaeiouaiunicestring"
get_substrings(s)

Đầu vào

"helloworldaeiouaiunicestring"

Đầu ra

aeiou aeioua aeiouai aeiouaiu eioua eiouai eiouaiu