Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में स्ट्रिंग पैलिंड्रोम है या नहीं जांचने के लिए पुनरावर्ती फ़ंक्शन


हमें एक स्ट्रिंग 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.

  1. - C/C++ में कैसे जांचें कि स्ट्रिंग इंटीजर है?

    यह जांचने के कई तरीके हैं कि स्ट्रिंग इंटीजर है या नहीं और उनमें से एक तरीका isdigit() का उपयोग करके स्ट्रिंग की जांच करना है। उदाहरण #include <iostream> #include <string.h> using namespace std; int main() { char str[] = 3257fg; for (int i = 0; i < strlen(str); i++) {

  1. - C++ में प्योर फ़ंक्शन

    प्योर फ़ंक्शन्स समान आर्गुमेंट मानों के लिए हमेशा समान परिणाम लौटाते हैं। वे केवल परिणाम लौटाते हैं और कोई अतिरिक्त साइड इफेक्ट्स नहीं होते जैसे आर्गुमेंट मॉडिफिकेशन, I/O स्ट्रीम, आउटपुट जनरेशन आदि। कुछ प्योर फ़ंक्शन्स हैं: sin(), strlen(), sqrt(), max(), pow(), floor() आदि। कुछ इम्प्योर फ़ंक्शन्स

  1. - C++ में strchr() फ़ंक्शन

    strchr() फ़ंक्शन C++ में पूर्वनिर्धारित फ़ंक्शन जो स्ट्रिंग हैंडलिंग के लिए उपयोग होता है। दिए गए स्ट्रिंग में किसी अक्षर की पहली घटना ढूंढता है और उसका पॉइंटर लौटाता है। <cstring> हेडर में परिभाषित। सिंटैक्स char* strchr(const char* str, int c) str: खोज की जाने वाली स्ट्रिंग, c: खोजा जाने व