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

सी ++ में संतुलित स्ट्रिंग्स में एक स्ट्रिंग को विभाजित करें

जैसा कि हम जानते हैं कि संतुलित तार वे होते हैं जिनमें बाएँ और दाएँ वर्णों की समान मात्रा होती है। मान लीजिए कि हमारे पास एक संतुलित स्ट्रिंग है जो इसे संतुलित स्ट्रिंग्स की अधिकतम मात्रा में विभाजित करती है। हमें विभाजित संतुलित तारों की अधिकतम मात्रा वापस करनी होगी। तो यदि स्ट्रिंग "RLRRLLRLRL" है, तो आउटपुट 4 होगा। क्योंकि चार संतुलित स्ट्रिंग हैं। "आरएल", "आरआरएलएल", "आरएल" और "आरएल" प्रत्येक सबस्ट्रिंग में एल और आर की बराबर मात्रा होती है।

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

  • सीएनटी प्रारंभ करें:=0, और उत्तर:=0
  • i :=0 से स्ट्रिंग के आकार के लिए
    • सीएनटी:=0
    • j :=i से स्ट्रिंग के आकार के लिए -
      • यदि s[j] ='R' है, तो cnt को 1 से बढ़ाएं अन्यथा cnt को 1 से घटाएं
      • अगर j – i> 0 और cnt =0, तो ans को 1 से बढ़ाएँ, i:=j, और लूप को तोड़ें
  • वापसी उत्तर

उदाहरण

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

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
      int balancedStringSplit(string s) {
         int cnt = 0;
         int ans = 0;
         for(int i =0;i<s.size();i++){
            cnt = 0;
            for(int j = i;j<s.size();j++){
               if(s[j] == 'R')cnt++;
               else cnt--;
               if(j-i>0 && cnt == 0 ){
                  ans++;
                  i=j;
                  break;
               }
               //cout << i << " " << j <<" "<< cnt << endl;
            }
         }
         return ans;
      }
};
main(){
   Solution ob;
   cout << ob.balancedStringSplit("RLLLLRRRLR");
}

इनपुट

"RLLLLRRRLR"

आउटपुट

3

  1. सी++ में न्यूनतम स्ट्रिंग

    मान लीजिए कि हमारे पास समान लंबाई के दो तार s और t हैं, और दोनों छोटे अक्षरों में हैं। विचार करें कि हमने पहले s को किसी भी क्रम में पुनर्व्यवस्थित किया है, फिर s को t में बदलने के लिए आवश्यक न्यूनतम परिवर्तनों की गणना करें। इसलिए, यदि इनपुट s =eccynue, t =science जैसा है, तो आउटपुट 2 होगा जैसे कि ह

  1. सी++ में विभाजित सूची

    मान लीजिए कि हमारे पास nums नामक पूर्णांकों की एक सूची है, हमें यह पता लगाना होगा कि क्या हम सूची को दो उप-सूचियों (गैर-रिक्त) में विभाजित कर सकते हैं जैसे कि बाएं भाग में प्रत्येक संख्या सख्ती से कम है दाएँ भाग में प्रत्येक संख्या से अधिक। इसलिए, यदि इनपुट [6,4,3,8,10] जैसा है, तो आउटपुट सही होगा,

  1. C++ में दो बाइनरी स्ट्रिंग्स जोड़ने का प्रोग्राम

    बाइनरी नंबर के साथ दो स्ट्रिंग्स को देखते हुए, हमें उन दो बाइनरी स्ट्रिंग्स को जोड़कर प्राप्त परिणाम को खोजना होगा और परिणाम को बाइनरी स्ट्रिंग के रूप में वापस करना होगा। बाइनरी नंबर वे नंबर होते हैं जिन्हें या तो 0 या 1 के रूप में व्यक्त किया जाता है। 2 बाइनरी नंबर जोड़ते समय बाइनरी जोड़ नियम होता