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

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

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

इनपुट-1 -

a = “tutor”

आउटपुट -

totur

स्पष्टीकरण - स्ट्रिंग "ट्यूटर" को उलटने से आउटपुट "टोटूर" के रूप में उत्पन्न होगा।

इनपुट-2 -

a = “mathematics”

आउटपुट -

mithametacs

स्पष्टीकरण - स्ट्रिंग "गणित" को उलटने से आउटपुट "मिथैमेटैक" के रूप में उत्पन्न होगा।

इस समस्या को हल करने का तरीका

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

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

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

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

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

  • निम्न और उच्च दो बिंदुओं को प्रारंभ करें जो क्रमशः '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

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


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

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

  1. सी # में एक स्ट्रिंग रिवर्स

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

  1. पायथन में एक स्ट्रिंग के विपरीत स्वर

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