เมื่อต้องการตรวจสอบว่าสตริงเป็น Palindrome หรือไม่โดยใช้ Recursion ใช้ indexing ธรรมดาและฟังก์ชันที่ผู้ใช้กำหนดร่วมกับ Recursion
Palindromes คือสตริงหรือค่าที่อ่านจากซ้ายไปขวาและขวาไปซ้ายมีตัวอักษรเหมือนกันใน index ตามลำดับ
Recursion คำนวณผลลัพธ์ของส่วนเล็กๆ ของปัญหาใหญ่ และรวมส่วนเหล่านี้เพื่อให้คำตอบของปัญหาใหญ่
ตัวอย่าง
def check_palindrome(my_str):
if len(my_str) < 1:
return True
else:
if my_str[0] == my_str[-1]:
return check_palindrome(my_str[1:-1])
else:
return False
my_string = str(input("Enter the string :"))
print("The string is ")
print(my_string)
if check_palindrome(my_string) == True:
print("The string is a palindrome")
else:
print("The string isn't a palindrome")
ผลลัพธ์
Enter the string : MalaM MalaM The string is MalaM The string is a palindrome
คำอธิบาย
- เมธอด 'check_palindrome' รับสตริงเป็นพารามิเตอร์
- หากขนาดสตริงน้อยกว่า 1 คืนค่า 'True'
- มิฉะนั้น ตรวจสอบองค์ประกอบสุดท้ายว่าตรงกับตัวแรกหรือไม่
- เรียกเมธอดซ้ำบนองค์ประกอบจาก index ที่สองถึงสุดท้าย โดย index สุดท้ายจะถูกตัดออกโดยการออกแบบ
- มิฉะนั้น ฟังก์ชันคืนค่า False
- นอกฟังก์ชัน ผู้ใช้ป้อนสตริง
- แสดงสตริงบนคอนโซล
- เรียกเมธอดส่งสตริงเป็นพารามิเตอร์
- หากคำนวณได้ 'True' แสดงข้อความที่เกี่ยวข้อง
- มิฉะนั้น แสดงข้อความอีกอย่าง