যেকোন সাইজের 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