Giả sử chúng ta có hai chuỗi s và t. Chỉ được phép thay đổi ký tự tại vị trí bất kỳ thành nguyên âm nếu nó đã là nguyên âm, hoặc thành phụ âm nếu nó đã là phụ âm. Cần kiểm tra xem s có thể biến đổi thành t hay ngược lại.
Ví dụ, s = "udpgma", t = "itmmve", đầu ra True vì u->i (nguyên âm), d->t (phụ âm), p->m (phụ âm), a->e (nguyên âm).
Các bước giải quyết:
- s_size := độ dài s.
- Nếu s_size != độ dài t, trả về False.
- Duyệt i từ 0 đến s_size-1:
- Nếu s[i] và t[i] đều là nguyên âm, tiếp tục.
- Ngược lại nếu cả hai đều không phải nguyên âm, tiếp tục.
- Ngược lại, trả về False.
- Trả về True.
Xem ví dụ dưới đây để hiểu rõ hơn:
Ví dụ
def isVowel(x):
return x in ['a', 'e', 'i', 'o', 'u']
def solve(s, t):
s_size = len(s)
if s_size != len(t):
return False
for i in range(s_size):
if isVowel(s[i]) and isVowel(t[i]):
continue
elif not isVowel(s[i]) and not isVowel(t[i]):
continue
else:
return False
return True
s, t = "udpgma", "itmmve"
print(solve(s, t))
Đầu vào
"udpgma", "itmmve"
Đầu ra
True