Cho chuỗi s. Kiểm tra xem chuỗi có tiền tố và hậu tố là palindrome hay không (độ dài tiền tố/hậu tố ≥ 2).
Ví dụ: "levelishighforracecar" → tiền tố "level", hậu tố "racecar" đều là palindrome → True.
Giải thuật
- Tìm tiền tố palindrome ngắn nhất (độ dài ≥ 2) bằng cách kiểm tra từ độ dài 2 đến n.
- Nếu không tìm thấy →
False. - Tìm hậu tố palindrome (độ dài ≥ 2) tương tự.
- Nếu tìm thấy cả hai →
True.
Mã ví dụ
def is_palindrome(s):
return s == s[::-1]
def solve(s):
l = len(s)
for i in range(2, l + 1):
if is_palindrome(s[0:i]):
break
if i == (l + 1):
return False
for i in range(2, l + 1):
if is_palindrome(s[l - i : l]):
return True
return False
s = "levelishighforracecar"
print(solve(s))
Đầu vào
"levelishighforracecar"
Đầu ra
True