एन पूर्णांकों की एक सरणी गिरफ्तारी [एन] को देखते हुए, कार्य यह पता लगाना है कि सरणी एक पैलिंड्रोम है या नहीं। हमें बताए गए कार्य को C++ में STL का उपयोग करके करना है।
सी ++ में एसटीएल (स्टैंडर्ड टेम्प्लेट लाइब्रेरी) की एक विशेषता है, यह सी ++ टेम्प्लेट क्लासेस का एक सेट है जो डेटा संरचनाओं और ढेर, कतार, सूचियां इत्यादि जैसे कई कार्यों को प्रदान करने के लिए उपयोग किया जाता है। इनका उपयोग करने के लिए ज्ञान होना चाहिए टेम्पलेट कक्षाओं की।
पैलिंड्रोम एक अनुक्रम है जिसे अनुक्रम के आगे या पीछे से समान रूप से पढ़ा जाता है। पैलिंड्रोम के कुछ सरल उदाहरण हैं - मैडम, रेसकार, आदि। एक सरणी एक पैलिंड्रोम होगी जैसे नीचे दिए गए उदाहरण में -
इसलिए, कार्य यह पता लगाना आसान है कि क्या सरणी एक पैलिंड्रोम है या C++ में STL का उपयोग नहीं कर रही है और यदि यह पैलिंड्रोम है तो "इसका एक पैलिंड्रोम" प्रिंट करें और यदि यह पैलिंड्रोम नहीं है तो "यह एक पैलिंड्रोम नहीं है"।
इनपुट
arr[] = {1, 2, 3, 5, 3, 2, 1}
आउटपुट
its a palindrome
इनपुट
arr[] = {1, 2, 3, 4, 5}
आउटपुट
its not a palindrome
समस्या को हल करने के लिए नीचे उपयोग किया गया दृष्टिकोण इस प्रकार है
-
प्रारंभ में डिफ़ॉल्ट रूप से ध्वज =0 सेट करें।
-
सरणी i को 0 से आकार n/2 तक लूप करें
-
प्रत्येक के लिए मैं जाँचता हूँ कि क्या गिरफ्तार [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