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

C++ में स्ट्रिंग को संतुलित करने के लिए न्यूनतम ब्रैकेट जोड़


केवल '(' और ')' वाली स्ट्रिंग दी गई है। इसे संतुलित करने के लिए न्यूनतम ब्रैकेट जोड़ें।

एल्गोरिदम: काउंटर o खुले ब्रैकेट के लिए। प्रत्येक '(' के लिए o++, प्रत्येक ')' के लिए यदि o>0 तो o-- अन्यथा cnt++ (बंद ब्रैकेट की जरूरत)। अंत में cnt + o वापस करें।

उदाहरण: "(()))(" → 2 ब्रैकेट चाहिए (बना सकते हैं "((()))()")।

C++ कार्यान्वयन

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

class Solution {
public:
    int solve(string s) {
        int o = 0, cnt = 0;
        for (int i = 0; i < s.size(); i++) {
            if (s[i] == '(') o++;
            else { if (o) o--; else cnt++; }
        }
        return cnt + o;
    }
};

int main() {
    Solution ob;
    cout << ob.solve("(()))(");
    return 0;
}

इनपुट

Input: "(()))("

आउटपुट

2
  1. C++ में बाइनरी ट्री की न्यूनतम गहराई C++ में बाइनरी ट्री की न्यूनतम गहराई

    समस्या विवरण मान लीजिए हमारे पास एक बाइनरी ट्री है; हमें उस ट्री की न्यूनतम गहराई ज्ञात करनी है। जैसा कि हम जानते हैं, न्यूनतम गहराई रूट नोड से निकटतम लीफ नोड तक के सबसे छोटे पथ पर नोड्स की संख्या है। उदाहरण यदि इनपुट ट्री है: तो आउटपुट होगा 2 हल करने का दृष्टिकोण इस समस्या को हल करने के लिए निम

  1. C++ में न्यूनतम नाइट मूव्स C++ में न्यूनतम नाइट मूव्स

    मान लीजिए हमारे पास एक अनंत शतरंज बोर्ड है जिसके कोऑर्डिनेट्स -इनफिनिटी से +इनफिनिटी तक हैं, और हमारे पास [0, 0] स्क्वायर पर एक नाइट है। नाइट के 8 संभावित मूव्स होते हैं, जैसा कि नीचे दिखाया गया है। प्रत्येक मूव कार्डिनल डायरेक्शन में दो स्क्वायर, फिर ऑर्थोगोनल डायरेक्शन में एक स्क्वायर होता है। ह

  1. - न्यूनतम x खोजें जैसे कि (x % k) * (x / k) == n C++ में

    दिए गए दो धनात्मक पूर्णांक n और k, और हमें धनात्मक पूर्णांक x खोजना है, जैसे कि (x % k)*(x / k) n के समान हो। तो यदि n और k क्रमशः 4 और 6 हैं, तो आउटपुट 10 होगा। तो (10 % 6) * (10 / 6) = 4। हम जानते हैं कि x % k का मान [1 से k - 1] की रेंज में होगा (0 शामिल नहीं) यहां हम उस रेंज में संभावित पूर्णांक