โปรแกรมนี้หาคำที่เป็นพาลินโดรม (อ่านจากหน้าหลังเท่ากัน) ในประโยค แล้วเรียงลำดับคำพาลินโดรมเหล่านั้นตามตัวอักษร และแทนที่คำพาลินโดรมเดิมในประโยคด้วยคำที่เรียงแล้ว
โค้ดตัวอย่าง
def check_palindrome(word):
"""ตรวจสอบว่าคำเป็นพาลินโดรมหรือไม่"""
return word == word[::-1]
def print_sort_palindromes(sentence):
words = sentence.split()
palindromes = [w for w in words if check_palindrome(w)]
palindromes.sort()
# แทนที่คำพาลินโดรมในประโยคเดิมด้วยคำที่เรียงแล้ว
result = []
p_idx = 0
for w in words:
if check_palindrome(w):
result.append(palindromes[p_idx])
p_idx += 1
else:
result.append(w)
print("ประโยคต้นฉบับ:", sentence)
print("ผลลัพธ์:", ' '.join(result))
# ทดสอบ
print_sort_palindromes("hi madam how are u")
ผลลัพธ์
ประโยคต้นฉบับ: hi madam how are u ผลลัพธ์: hi madam how are u
ในประโยค "hi madam how are u" มีคำพาลินโดรมคือ "madam" เพียงคำเดียว จึงไม่มีการเปลี่ยนแปลงลำดับ หากมีหลายคำพาลินโดรม จะถูกเรียงลำดับตามตัวอักษร