हमें इनपुट के रूप में एक स्ट्रिंग Str दिया जाता है। लक्ष्य यह पता लगाना है कि क्या इनपुट स्ट्रिंग एक पैलिंड्रोम शब्द है या एक पुनरावर्ती फ़ंक्शन का उपयोग नहीं कर रहा है। पैलिंड्रोम स्ट्रिंग्स वे स्ट्रिंग्स हैं जिन्हें सामने या अंत से पढ़ने पर एक ही शब्द बनता है। लंबाई 0 के तार को पैलिंड्रोम माना जाता है। पैलिंड्रोम्स के चरित्र के अनुसार रूपों को उलटना, मूल के समान स्ट्रिंग।
पैलिंड्रोम के उदाहरण हैं:- मैडम, एबीसीबीए, मलयालम आदि
उदाहरण
इनपुट - स्ट्र ="मलयालम"
आउटपुट - इनपुट स्ट्रिंग पैलिंड्रोम है।
स्पष्टीकरण -
स्ट्र [ 0 से 8 ] =मलयालम
रिवर्स स्ट्र [ 8 से 0 ] =मलयालम
दोनों तार समान हैं।
इनपुट - स्ट्र ="ट्यूटोरियल"
आउटपुट - इनपुट स्ट्रिंग पैलिंड्रोम नहीं है।
स्पष्टीकरण -
स्ट्र [ 0 से 7 ] =ट्यूटोरियल
रिवर्स स्ट्र [ 7 से 0 ] =लैरोटुट
दोनों तार अलग हैं
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
इस दृष्टिकोण में हम जाँच करेंगे कि क्या स्ट्रिंग में एक ही वर्ण है, यदि सत्य है तो यह पैलिंड्रोम है। यदि नहीं, तो शेष वर्णों के लिए पूरी स्ट्रिंग को पुनरावर्ती रूप से ट्रैवर्स करें और यदि संबंधित वर्ण भिन्न हैं तो रिकर्सन को तोड़ दें।
-
इनपुट स्ट्रिंग Str[] लें और इसकी लंबाई की गणना करें।
-
अगर लंबाई 0 है तो परिणाम =1 सेट करें।
-
अन्य सेट परिणाम =checkPalindrome(Str, 0, लंबाई - 1) जहां 0 पहली अनुक्रमणिका है और लंबाई -1 अंतिम अनुक्रमणिका है
-
फ़ंक्शन checkPalindrome(char str[], int first, int last) यदि कोई वर्ण स्ट्रिंग में उसके संगत वर्ण से मेल नहीं खाता है तो 0 देता है।
-
यदि पहले और अंतिम अनुक्रमित समान हैं तो स्ट्रिंग में एक वर्ण है, फिर 1 लौटाएं।
-
यदि नहीं, तो अंतिम वर्णों को छोड़कर शेष वर्णों को पहले ++, अंतिम-- और पुनरावर्ती कॉल checkPalindrome(str, first, last) द्वारा जांचें।
-
सभी रिकर्सन के अंत में हमें एक परिणाम मिलेगा।
-
अगर यह 1 है तो इनपुट स्ट्रिंग पैलिंड्रोम है।
-
अन्य इनपुट स्ट्रिंग पैलिंड्रोम नहीं है।
-
मुख्य में परिणाम प्रिंट करें।
उदाहरण
#include <bits/stdc++.h> using namespace std; int checkPalindrome(char str[], int first, int last){ if (first < last + 1){ first++; last--; return checkPalindrome(str, first, last); } if (first == last){ return 1; } if (str[first] != str[last]){ return 0; } return 1; } // Driver Code int main(){ char Str[] = "madam"; int result; int length = strlen(Str); if (length == 0){ result=1; } else{ result=checkPalindrome(Str, 0, length - 1); } if (result==1){ cout << "Input string is palindrome."; } else{ cout << "Input string is not a palindrome."; } return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
Input string is palindrome.