Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C ตรวจสอบ Array ว่าเป็น Palindrome ด้วย Recursion

ได้รับอาร์เรย์ arr[n] ตรวจสอบว่าเป็น Palindrome หรือไม่ โดยใช้ Recursion

Palindrome คือลำดับที่อ่านจากหน้าหลังเหมือนกัน เช่น MADAM, NAMAN

ตัวอย่าง

Input: arr[] = {2, 3, 4, 3, 2}  Output: Yes, the array is Palindrome
Input: arr[] = {1, 2, 3, 4}       Output: No, the array is not Palindrome

แนวทาง Recursive

  • เปรียบเทียบ arr[start] กับ arr[end] ต้องเท่ากันและ start < end
  • เพิ่ม start ลด end แล้วเรียกฟังก์ชันซ้ำ
  • Base case: start >= end → return true
  • ถ้าไม่เท่ากัน → return false

อัลกอริทึม

Start
ฟังก์ชัน palindrome(arr[], start, end):
    if start >= end return 1
    if arr[start] == arr[end]
        return palindrome(arr, start+1, end-1)
    else return 0

main():
    arr[] = {1,2,0,2,1}
    n = sizeof(arr)/sizeof(arr[0])
    if palindrome(arr, 0, n-1) print "Yes" else print "No"
Stop

โค้ดตัวอย่าง

#include <stdio.h>

int palindrome(int arr[], int start, int end) {
    if (start >= end) return 1;
    if (arr[start] == arr[end])
        return palindrome(arr, start + 1, end - 1);
    else return 0;
}

int main() {
    int arr[] = {1, 2, 0, 2, 1};
    int n = sizeof(arr) / sizeof(arr[0]);
    if (palindrome(arr, 0, n - 1) == 1)
        printf("Yes, the array is Palindrome\n");
    else
        printf("No, the array is not Palindrome\n");
    return 0;
}

ผลลัพธ์

Yes, the array is Palindrome