Giả sử ta có chuỗi s độ dài chẵn. Ta chia chuỗi thành hai nửa bằng nhau: a (nửa đầu) và b (nửa sau). Hai chuỗi gọi là "alike" khi có cùng số lượng nguyên âm (hoa/thường). Kiểm tra a và b có alike không.
Ví dụ: s = "talent", kết quả là True vì hai nửa "tal" và "ent" đều có 1 nguyên âm.
Giải thuật
a := s[:len(s)//2],b := s[len(s)//2:]count1 := 0, count2 := 0- Với mỗi
ctronga: nếuclà nguyên âm:count1++ - Với mỗi
ctrongb: nếuclà nguyên âm:count2++ - Trả về
count1 == count2
Ví dụ (Python)
def solve(s):
vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
a = s[:len(s)//2]
b = s[len(s)//2:]
count1 = count2 = 0
for c in a:
if c in vowels:
count1 += 1
for c in b:
if c in vowels:
count2 += 1
return count1 == count2
s = "talent"
print(solve(s))
Input
"talent"
Output
True