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

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


जैसा कि हम जानते हैं कि संतुलित स्ट्रिंग्स वे हैं जिनमें बाएं और दाएं कैरेक्टर्स की समान मात्रा होती है। मान लें हमारे पास एक संतुलित स्ट्रिंग s है जिसे इसे अधिकतम मात्रा में संतुलित स्ट्रिंग्स में विभाजित करना है। हमें विभाजित संतुलित स्ट्रिंग्स की अधिकतम मात्रा लौटानी है। तो यदि स्ट्रिंग “RLRRLLRLRL” है, तो आउटपुट 4 होगा। क्योंकि चार संतुलित स्ट्रिंग्स हैं। “RL”, “RRLL”, “RL” और “RL” प्रत्येक सबस्ट्रिंग में L और R की समान मात्रा है।

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

  • cnt := 0, और ans := 0 इनिशियलाइज़ करें
  • i := 0 से स्ट्रिंग के आकार तक
    • cnt := 0
    • j := i से स्ट्रिंग के आकार तक घटाएं
      • यदि s[j] = ‘R’, तो cnt को 1 से बढ़ाएं अन्यथा cnt को 1 से घटाएं
      • यदि j – i > 0 और cnt = 0, तो ans को 1 से बढ़ाएं, i := j, और लूप तोड़ें
  • ans लौटाएं

उदाहरण

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

#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. - C++ में न्यूनतम स्ट्रिंग परिवर्तन

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

  1. - C++ में सूची विभाजन

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

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

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