हमें एक स्ट्रिंग Str इनपुट के रूप में दी गई है। लक्ष्य है पुनरावर्ती फ़ंक्शन का उपयोग करके पता लगाना कि इनपुट स्ट्रिंग एक पैलिंड्रोम शब्द है या नहीं। पैलिंड्रोम स्ट्रिंग्स वे स्ट्रिंग्स हैं जिन्हें सामने या अंत से पढ़ने पर समान शब्द बनता है। लंबाई 0 की स्ट्रिंग्स को पैलिंड्रोम माना जाता है। पैलिंड्रोम को वर्ण-वार उल्टा करने पर मूल स्ट्रिंग के समान ही स्ट्रिंग बनती है।
पैलिंड्रोम के उदाहरण हैं:- madam, abcba, malayalam आदि
उदाहरण
इनपुट - Str = "malayalam"
आउटपुट - इनपुट स्ट्रिंग पैलिंड्रोम है।
व्याख्या -
Str[ 0 से 8 ] = malayalam
उल्टा Str [ 8 से 0 ] = malayalam
दोनों स्ट्रिंग्स समान हैं।
इनपुट - Str = "tutorial"
आउटपुट - इनपुट स्ट्रिंग पैलिंड्रोम नहीं है।
व्याख्या -
Str[ 0 से 7 ] = tutorial
उल्टा Str [ 7 से 0 ] = lairotut
दोनों स्ट्रिंग्स अलग हैं
उपयोग किया गया दृष्टिकोण
इस दृष्टिकोण में हम जांचेंगे कि क्या स्ट्रिंग में एक वर्ण है, यदि सच है तो यह पैलिंड्रोम है। यदि नहीं, तो शेष वर्णों के लिए पूरी स्ट्रिंग को पुनरावर्ती रूप से ट्रैवर्स करें और पुनरावर्तन को तोड़ें यदि संबंधित वर्ण अलग हैं।
इनपुट स्ट्रिंग Str[] लें और इसकी लंबाई की गणना करें।
यदि लंबाई 0 है तो result=1 सेट करें।
अन्यथा result=checkPalindrome(Str, 0, length - 1) सेट करें जहां 0 पहला इंडेक्स है और length - 1 अंतिम इंडेक्स है
फ़ंक्शन checkPalindrome(char str[], int first, int last) 0 लौटाता है यदि कोई वर्ण स्ट्रिंग में अपने संबंधित वर्ण से मेल नहीं खाता।
यदि इंडेक्स first और last समान हैं तो स्ट्रिंग में एक वर्ण है, तो 1 लौटाएं।
यदि नहीं तो first++, last-- करके अंत वर्णों को छोड़कर शेष वर्णों की जांच करें और checkPalindrome(str, first, last) को पुनरावर्ती कॉल करें।
सभी पुनरावर्तनों के अंत में हमें एक परिणाम मिलेगा।
यदि यह 1 है तो इनपुट स्ट्रिंग पैलिंड्रोम है।
अन्यथा इनपुट स्ट्रिंग पैलिंड्रोम नहीं है।
main में परिणाम प्रिंट करें।
उदाहरण
#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.