Computer >> Máy Tính >  >> Lập trình >> lập trình C

C Chương trình kiểm tra xem một Mảng có phải là Palindrome hay không

Cho một mảng arr [] có kích thước n bất kỳ, nhiệm vụ của chúng ta là tìm ra mảng đó có phải là palindrome hay không. Palindrome là một chuỗi có thể được đọc ngược và chuyển tiếp như nhau, như:MADAM, NAMAN, v.v.

Vì vậy, để kiểm tra một mảng có phải là palindrome hay không, chúng ta có thể duyệt qua một mảng từ ngược lại và chuyển tiếp như -

C Chương trình kiểm tra xem một Mảng có phải là Palindrome hay không

Ví dụ

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

Phương pháp tiếp cận được sử dụng bên dưới như sau -

Chúng tôi sẽ duyệt qua mảng từ đầu cũng như từ cuối cho đến khi cả hai đều bằng nhau và kiểm tra xem phần tử bắt đầu có giống với phần tử ở cuối hay không, sau đó mảng là palindrome nếu không mảng không phải là palindrome.

Thuật toán

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

Ví dụ

#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;
}

Đầu ra

Nếu chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -

Array is not palindrome