একটি অ্যারে arr[n] দেওয়া আছে। কাজ হলো STL (Standard Template Library) ব্যবহার করে অ্যারেটি প্যালিনড্রোম কিনা তা নির্ধারণ করা।
C++-এ STL হলো টেমপ্লেট ক্লাসের সমষ্টি যা ডেটা স্ট্রাকচার ও ফাংশন (স্ট্যাক, কিউ, লিস্ট ইত্যাদি) প্রদান করে।
প্যালিনড্রোম হলো এমন ক্রম যা সামনে থেকে ও পেছনে থেকে পড়লে একই থাকে। যেমন: MADAM, RACECAR। অ্যারেও একই নিয়ম প্রযোজ্য।
ইনপুট
arr[] = {1, 2, 3, 5, 3, 2, 1}
আউটপুট
its a palindrome
ইনপুট
arr[] = {1, 2, 3, 4, 5}
আউটপুট
its not a palindrome
সমাধানের পদ্ধতি
- flag = 0 দিয়ে শুরু করুন।
- অ্যারে লুপ চালান i = 0 থেকে size/2 পর্যন্ত।
- প্রতি i-তে arr[i] != arr[n-i-1] হলে flag = 1 করে ব্রেক করুন।
- লুপ শেষে flag == 1 হলে "its a palindrome", অন্যথায় "its not a palindrome" প্রিন্ট করুন।
এলগরিদম
Start
1 → ফাংশন: check_palindrome(int arr[], int size)
int flag = 0
int arr_2[size]
memcpy(arr_2, arr, size * sizeof(int))
reverse(arr, arr + size)
for i = 0 to size-1
if arr[i] != arr_2[i] then flag = 1, break
if flag == 0 → print "its a palindrome"
else → print "its not a palindrome"
2 → main(): অ্যারে ঘোষণা, সাইজ গণনা, ফাংশন কল
Stop
উদাহরণ কোড
#include <bits/stdc++.h>
using namespace std;
void check_palindrome(int arr[], int size){
int flag = 0;
int arr_2[size];
memcpy(arr_2, arr, size * sizeof(int));
reverse(arr, arr + size);
for (int i = 0; i < size; i++) {
if (arr[i] != arr_2[i]) {
flag = 1;
break;
}
}
if (flag == 0)
cout << "its a palindrome\n";
else
cout << "its not a palindrome\n";
}
int main(){
int arr[] = { 2, 3, 4, 3, 2 };
int size = sizeof(arr) / sizeof(arr[0]);
check_palindrome(arr, size);
return 0;
}
আউটপুট
its a palindrome