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

โปรแกรม C ตรวจสอบว่า Array เป็น Palindrome หรือไม่


ให้อาร์เรย์ arr[] มีขนาด n ใดๆ ภารกิจของเราคือค้นหาว่าอาร์เรย์นั้นเป็นพาลินโดรมหรือไม่ Palindrome เป็นซีเควนซ์ที่สามารถอ่านย้อนหลังและไปข้างหน้าได้เหมือนกัน เช่น MADAM, NAMAN เป็นต้น

ดังนั้นในการตรวจสอบอาร์เรย์ว่าเป็น palindrome หรือไม่เพื่อให้เราสามารถสำรวจอาร์เรย์จากด้านหลังและไปข้างหน้าได้เช่น -

โปรแกรม C ตรวจสอบว่า Array เป็น Palindrome หรือไม่

ตัวอย่าง

Input: arr[] = {1, 0, 0, 1}
Output: Array is palindrome
Input: arr[] = {1, 2, 3, 4, 5}
Output: Array is not palindrome

แนวทางที่ใช้ด้านล่างมีดังนี้

เราจะสำรวจอาร์เรย์จากจุดเริ่มต้นและจุดสิ้นสุดจนกว่าทั้งคู่จะเท่ากันและตรวจสอบว่าองค์ประกอบจากจุดเริ่มต้นเหมือนกับองค์ประกอบจากจุดสิ้นสุดหรือไม่ จากนั้นอาร์เรย์จะเป็น palindrome มิฉะนั้นอาร์เรย์จะไม่ใช่ palindrome

อัลกอริทึม

Start
In function int pallindrome(int arr[], int n)
   Step 1-> initialize i, j, flag and assign flag as 0
   Step 2-> Loop For i = 0, j=n-1 and i< n/2, j>=n/2 and i++, j--
      If arr[i]!=arr[j] then,
         Set flag as 1
            Break
      End If
   End Loop
   Step 3-> If flag == 1 then,
      Return 0
   Step 4-> Else
      Return 1
End function
In function int main(int argc, char const *argv[])
   Step 1-> Declare and initialize arr[] as {1, 0, 2, 3, 2, 2, 1}
   Step 2-> Declare and initialize n as sizeof(arr)/sizeof(arr[0])
   Step 3-> If pallindrome(arr, n) then,
      Print "Array is pallindrome "
   End if
   Step 4-> Else
      Print "Array is not pallindrome "
   Return 0
End main
Stop

ตัวอย่าง

#include <stdio.h>
int pallindrome(int arr[], int n) {
   int i, j, flag = 0;
   for(i = 0, j=n-1; i< n/2, j>=n/2; i++, j--) {
      if(arr[i]!=arr[j]) {
         flag = 1;
         break;
      }
   }
   if (flag == 1)
   return 0;
   else
   return 1;
}
int main(int argc, char const *argv[]) {
   int arr[] = {1, 0, 2, 3, 2, 2, 1};
   int n = sizeof(arr)/sizeof(arr[0]);
   if(pallindrome(arr, n)) {
      printf("Array is pallindrome\n");
   }
   else
      printf("Array is not pallindrome\n");
   return 0;
}

ผลลัพธ์

หากรันโค้ดด้านบน มันจะสร้างผลลัพธ์ต่อไปนี้ -

Array is not palindrome