Giả sử chúng ta có chuỗi s, cần kiểm tra xem chuỗi có tuân theo mẫu a^n b^n hay không. Tức là n ký tự 'a' theo sau bởi n ký tự 'b'. Ví dụ n=3 -> "aaabbb".
Ví dụ, s = "aaaaabbbbb", đầu ra True vì tuân theo a^5 b^5.
Các bước giải quyết:
- size := độ dài s.
- Duyệt i từ 0 đến size-1: nếu s[i] != 'a', thoát vòng lặp.
- Nếu i * 2 != size, trả về False (số 'a' và 'b' không bằng nhau).
- Duyệt j từ i đến size-1: nếu s[j] != 'b', trả về False.
- Trả về True.
Xem ví dụ dưới đây để hiểu rõ hơn:
Ví dụ
def solve(s):
size = len(s)
for i in range(size):
if s[i] != 'a':
break
if i * 2 != size:
return False
for j in range(i, size):
if s[j] != 'b':
return False
return True
s = "aaaaabbbbb"
print(solve(s))
Đầu vào
"aaaaabbbbb"
Đầu ra
True