যেকোন সাইজের n অ্যারে অ্যারে দেওয়া হলে, আমাদের কাজ হল অ্যারেটি প্যালিনড্রোম কিনা তা খুঁজে বের করা। প্যালিনড্রোম হল এমন একটি ক্রম যা পিছনের দিকে এবং সামনের দিকে একইভাবে পড়া যায়, যেমন:ম্যাডাম, নমন ইত্যাদি৷
সুতরাং একটি অ্যারে প্যালিনড্রোম কিনা তা পরীক্ষা করতে আমরা পিছনে এবং সামনের মতো একটি অ্যারে অতিক্রম করতে পারি −

উদাহরণ
Input: arr[] = {1, 0, 0, 1}
Output: Array is palindrome
Input: arr[] = {1, 2, 3, 4, 5}
Output: Array is not 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