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

C++ में स्ट्रिंग के स्वरों को उल्टा करें


एक स्ट्रिंग दी गई है, कार्य दी गई स्ट्रिंग में मौजूद सभी स्वरों को उल्टा करना है। उदाहरण के लिए,

इनपुट-1 -

a = "tutor"

आउटपुट -

totur

व्याख्या - स्ट्रिंग "tutor" को उल्टा करने पर आउटपुट "totur" उत्पन्न होगा।

इनपुट-2 -

a = "mathematics"

आउटपुट -

mithametacs

व्याख्या - स्ट्रिंग "mathematics" को उल्टा करने पर आउटपुट "mithametacs" उत्पन्न होगा।

इस प्रॉब्लम को हल करने का दृष्टिकोण

एक स्ट्रिंग दी गई है, हमें इसमें मौजूद सभी स्वरों को उल्टा करना है। इस विशेष प्रॉब्लम को हल करने के कई दृष्टिकोण हैं लेकिन हमें इसे रैखिक समय O(n) में हल करना है।

इस प्रकार, इस प्रॉब्लम को हल करने की बेहतर विधि टू-पॉइंटर दृष्टिकोण का उपयोग करना है जिसमें हम दो पॉइंटर्स लो और हाई लेंगे जो प्रारंभ में बाएं-मोस्ट तत्व और दाएं-मोस्ट तत्व की ओर इशारा करेंगे। दो नेस्टेड लूप्स में, हम जांचेंगे कि क्या बायां-मोस्ट वर्ण स्वर है और दायां-मोस्ट वर्ण भी स्वर है तो तत्व को स्वैप करें और राइट पॉइंटर को आगे बढ़ाएं।

  • एक स्ट्रिंग का इनपुट लें।

  • एक बूलियन फंक्शन यह जांचने के लिए कि वर्ण स्वर है या नहीं।

  • एक फंक्शन reverseVowel(string &str) एक स्ट्रिंग को इनपुट के रूप में लेता है और स्ट्रिंग में मौजूद स्वरों को उल्टा करता है।

  • दो पॉइंटर्स लो और हाई इनिशियलाइज़ करें जो क्रमशः '0' और अंतिम वर्ण की ओर इशारा करते हैं।

  • बाएं-मोस्ट और दाएं-मोस्ट वर्णों की जांच करें यदि वे स्वर हैं तो वर्ण को इन-प्लेस स्वैप करें और राइटमोस्ट पॉइंटर को घटाएं।

  • चरणों को तब तक दोहराएं जब तक स्ट्रिंग के सभी वर्ण विज़िट न हो जाएं।

उदाहरण

#include <bits/stdc++.h>
using namespace std;

bool isVowel(char ch) {
    return ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u' ||
           ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U';
}

string reverseVowel(string &s) {
    int low = 0;
    int high = s.size() - 1;
    while (low < high) {
        while (low < high && !isVowel(s[low])) {
            low++;
        }
        while (low < high && !isVowel(s[high])) {
            high--;
        }
        swap(s[low++], s[high--]);
    }
    return s;
}

int main() {
    string a = "tutorialspoint";
    string ans = reverseVowel(a);
    cout << ans;
    return 0;
}

आउटपुट

उपरोक्त कोड चलाने पर निम्न आउटपुट उत्पन्न होगा,

titorailspount

चूंकि दी गई स्ट्रिंग "tutorialspoint" में स्वर हैं, स्वरों को उल्टा करने के बाद, यह आउटपुट के रूप में "titorailspount" उत्पन्न करेगा।


  1. - C++ में स्ट्रिंग को टोकनाइज़ कैसे करें?

    पहला तरीका शब्दों को स्पेस से अलग करके पढ़ने के लिए stringstream का उपयोग करना है। यह थोड़ा सीमित है लेकिन अगर आप उचित चेक प्रदान करते हैं तो यह कार्य काफी अच्छी तरह से करता है। उदाहरण #include <vector> #include <string> #include <sstream> using namespace std; int main() {  

  1. - C# में स्ट्रिंग को रिवर्स करें

    स्ट्रिंग को रिवर्स करने के लिए, Array.Reverse() मेथड का उपयोग करें।हमने एक मेथड सेट किया है और स्ट्रिंग वैल्यू Henry पास की है:public static string ReverseFunc(string str) { char[] ch = str.ToCharArray(); Array.Reverse(ch); return new string(ch); }उपरोक्त मेथड में, हमने स्ट्रिंग को कैरेक

  1. - पायथन में स्ट्रिंग के स्वरों को उल्टा करें

    मान लीजिए हमारे पास एक लोअरकेस स्ट्रिंग है। हमारा कार्य स्ट्रिंग में मौजूद स्वरों को उल्टा करना है। उदाहरण के लिए, यदि स्ट्रिंग hello है, तो स्वर उल्टा करने के बाद स्ट्रिंग holle हो जाएगी। स्ट्रिंग programming के लिए, यह prigrammong होगी। हल करने के चरण स्ट्रिंग लें और स्वरों की एक सूची बनाएं, साथ