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

सी ++ में एक स्ट्रिंग में शब्दों को उल्टा करें

मान लीजिए कि हमारे पास कुछ शब्दों के साथ एक स्ट्रिंग है। हमें स्ट्रिंग में शब्दों की स्थिति को उलटना होगा। तो अगर स्ट्रिंग "तेज भूरी लोमड़ी एक आलसी कुत्ते के ऊपर कूदती है" की तरह है

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • एक फ़ंक्शन को परिभाषित करें getString(), यह s को इनपुट के रूप में लेगा, यह काम करेगा -

  • i:=0, j:=s का आकार – 1

  • जबकि s[i] ='' और i

  • जबकि j>=0 और s[j] ='', j को 1 से घटाएं

  • रिट:=खाली स्ट्रिंग

  • i <=j के लिए, i को 1 से बढ़ाएँ

    • यदि रिट का आकार गैर-शून्य है और रिट का अंतिम तत्व '' है और s[i] '' है, तो अगले पुनरावृत्ति के लिए जाएं

    • रिट:=रिट + एस[i]

  • रिवर्सवर्ड्स () नामक एक अन्य विधि को परिभाषित करें, यह इनपुट के रूप में s लेगा

  • जे:=0

  • I के लिए 0 से लेकर s – 1 के आकार तक के प्रत्येक चरण में i :=j

    • यदि s[i] रिक्त है, तो j :=i + 1

    • अन्यथा

      • जबकि j + 1

      • एक्स:=मैं और वाई:=जे

      • जबकि x

        • विनिमय s[x] और s[y], x को 1 से बढ़ाएँ और y को 1 से घटाएँ

      • j को 1 से बढ़ाएँ

  • मुख्य विधि से, निम्न कार्य करें -

  • स्ट्रिंग एस को उलट दें

  • रिवर्सवर्ड्स

  • वापसी getString(s)

उदाहरण (C++)

आइए एक बेहतर समझ प्राप्त करने के लिए निम्नलिखित कार्यान्वयन देखें -

#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
   string reverseWords(string s) {
      reverse(s.begin(), s.end());
      reverseWordss(s);
      return getString(s);
   }
   string getString(string s){
      int i = 0;
      int j = s.size() - 1;
      while(s[i] == ' ' && i < s.size()) i++;
      while(j >= 0 && s[j] == ' ') j--;
      string ret = "";
      for(;i <= j; i++){
         if(ret.size() && ret.back() == ' ' && s[i] == ' ')continue;
         ret += s[i];
      }
      return ret;
   }
   void reverseWordss(string& s){
      int j = 0;
      for(int i = 0; i < s.size() ;i = j){
         if(s[i] == ' '){
            j = i + 1;
         }
         else{
            while(j + 1 < s.size() && s[j + 1] != ' ') j++;
            int x = i;
            int y = j;
            while(x < y){
               swap(s[x], s[y]);
               x++;
               y--;
            }
            j++;
         }
      }  
   }
};
main(){
   Solution ob;
   cout << (ob.reverseWords("The quick brown fox jumps over a lazy dog"));
}

इनपुट

"The quick brown fox jumps over a lazy dog"

आउटपुट

"dog lazy a over jumps fox brown quick The"

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

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

  1. सी # प्रोग्राम एक स्ट्रिंग में शब्दों को उलटने के लिए

    मान लें कि निम्नलिखित स्ट्रिंग है - Hello World स्ट्रिंग को उलटने के बाद, शब्द इस तरह दिखाई देने चाहिए - olleH dlroW उदाहरण रिवर्स () पद्धति का उपयोग करें और एक स्ट्रिंग में शब्दों को उलटने के लिए निम्न कोड का प्रयास करें। using System; using System.Linq; class Demo {    static void Main()

  1. पायथन में दिए गए स्ट्रिंग में शब्दों को उल्टा करें

    हमें एक स्ट्रिंग दी गई है, और हमारा लक्ष्य उन सभी शब्दों को उलटना है जो स्ट्रिंग में मौजूद हैं। हम आउटपुट प्राप्त करने के लिए स्प्लिट मेथड और रिवर्स फंक्शन का उपयोग कर सकते हैं। आइए कुछ नमूना परीक्षण मामलों को देखें। Input: string = "I am a python programmer" Output: programmer python a am