เมื่อจำเป็นต้องตรวจสอบว่าสตริงเป็นพาลินโดรมหรือไม่โดยใช้เทคนิคการเรียกซ้ำ ระบบจะใช้การสร้างดัชนีอย่างง่าย และฟังก์ชันที่ผู้ใช้กำหนด ควบคู่ไปกับการตัดทอน
Palindromes คือสตริงหรือค่าเหล่านั้นซึ่งเมื่ออ่านจากซ้ายไปขวาและจากขวาไปซ้ายจะมีอักขระเหมือนกันในดัชนีที่เกี่ยวข้อง
การเรียกซ้ำจะคำนวณเอาต์พุตของบิตขนาดเล็กของปัญหาที่ใหญ่กว่า และรวมบิตเหล่านี้เข้าด้วยกันเพื่อแก้ปัญหาที่ใหญ่กว่า
ด้านล่างนี้เป็นการสาธิตสำหรับสิ่งเดียวกัน -
ตัวอย่าง
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' รับสตริงเป็นพารามิเตอร์
- ถ้าขนาดของสตริงน้อยกว่าหนึ่ง 'True' จะถูกส่งกลับเป็นเอาต์พุต
- มิฉะนั้น องค์ประกอบสุดท้ายในสตริงจะถูกตรวจสอบเพื่อดูว่าตรงกับองค์ประกอบแรกหรือไม่
- วิธีการนี้ถูกเรียกอีกครั้งในองค์ประกอบจากดัชนีที่สองไปยังดัชนีสุดท้าย โดยที่ค่าดัชนีสุดท้ายจะถูกยกเว้นโดยการออกแบบ
- มิฉะนั้น ฟังก์ชันจะคืนค่าเท็จ
- นอกฟังก์ชัน ผู้ใช้จะถูกขอให้ป้อนสตริง
- สตริงนี้แสดงอยู่บนคอนโซล
- เมธอดนี้ถูกเรียกโดยการส่งผ่านสตริงนี้เป็นพารามิเตอร์
- หากค่าของมันคำนวณเป็น "จริง" ข้อความที่เกี่ยวข้องจะแสดงบนคอนโซล
- มิฉะนั้น ข้อความอื่นจะปรากฏบนคอนโซล