n পূর্ণসংখ্যার একটি অ্যারে [n] দেওয়া, কাজটি হল অ্যারেটি প্যালিনড্রোম কিনা তা খুঁজে বের করা। C++ এ STL ব্যবহার করে আমাদের উল্লেখিত কাজটি করতে হবে।
C++ এ STL(স্ট্যান্ডার্ড টেমপ্লেট লাইব্রেরি) এর একটি বৈশিষ্ট্য রয়েছে, এটি C++ টেমপ্লেট ক্লাসের একটি সেট যা ডেটা স্ট্রাকচার এবং স্ট্যাক, সারি, তালিকা ইত্যাদির মতো বেশ কিছু ফাংশন প্রদান করতে ব্যবহৃত হয়। এগুলো ব্যবহার করার জন্য অবশ্যই জ্ঞান থাকতে হবে। টেমপ্লেট ক্লাসের।
প্যালিনড্রোম হল একটি সিকোয়েন্স যা সিকোয়েন্সের সামনে বা পিছন থেকে একইভাবে পড়া হয়। একটি প্যালিনড্রোমের কিছু সাধারণ উদাহরণ হল − MADAM, RACECAR, ইত্যাদি৷ নীচের উদাহরণের মতো একটি অ্যারে একটি প্যালিনড্রোম হবে -
সুতরাং, অ্যারেটি একটি প্যালিনড্রোম কিনা বা C++ এ STL ব্যবহার করছে কিনা তা খুঁজে বের করা এবং এটি একটি প্যালিনড্রোম হলে "এটি একটি প্যালিনড্রোম" প্রিন্ট করা এবং যদি এটি প্যালিনড্রোম না হয় তবে "এটি একটি প্যালিনড্রোম নয়" প্রিন্ট করা সহজ।
ইনপুট
arr[] = {1, 2, 3, 5, 3, 2, 1}
আউটপুট
its a palindrome
ইনপুট
arr[] = {1, 2, 3, 4, 5}
আউটপুট
its not a palindrome
সমস্যা সমাধানের জন্য নিচের পদ্ধতিটি ব্যবহার করা হয়েছে
-
শুরুতে ডিফল্টরূপে পতাকা =0 সেট করুন।
-
0 থেকে আকার n/2 পর্যন্ত অ্যারে i লুপ করুন
-
প্রত্যেকের জন্য আমি পরীক্ষা করে দেখব যে আরআর[i] কিনা! =arr[n-i-1] তারপর পতাকা সেট করুন =1 এবং বিরতি
-
লুপ শেষ হওয়ার পরে, পতাকা 1 হলে প্রিন্ট "এটি একটি প্যালিনড্রোম" অন্যথায় "এটি প্যালিনড্রোম নয়" প্রিন্ট করুন৷
অ্যালগরিদম
Start 1→ declare function to check if an array is palindrome or not void check_palindrome(int arr[], int size) declare int flag = 0 Declare int arr_2[size] Call memcpy(arr_2, arr, size * sizeof(int)) Call reverse(arr, arr + size) Loop For int i = 0 and i < size and i++ IF (arr[i] != arr_2[i]) Set flag = 1 Break End IF (flag == 0) Print its a palindrome End Else Print its not a palindrome End Step 2→ In main() Declare int arr[] = { 2,3,4,3,2 } Declare int size = sizeof(arr) / sizeof(arr[0]) Call check_palindrome(arr, size)
উদাহরণ
#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