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

C++ का उपयोग करके कोष्ठकों की एक स्ट्रिंग में एक समान बिंदु खोजें।

यहां हम देखेंगे कि कोष्ठक की एक स्ट्रिंग में समान अंक कैसे प्राप्त करें। समान बिंदु सूचकांक I है, जैसे कि इसके पहले खुलने वाले कोष्ठकों की संख्या इसके बाद के समापन कोष्ठक की संख्या के बराबर है। मान लीजिए कि एक ब्रैकेट स्ट्रिंग "(())) (() () ()))" की तरह है, अगर हम करीब से देखते हैं, तो हम प्राप्त कर सकते हैं

C++ का उपयोग करके कोष्ठकों की एक स्ट्रिंग में एक समान बिंदु खोजें।

तो 0 से 9 तक खुलने वाले कोष्ठकों की संख्या 5 है, और 9 से 14 तक के समापन कोष्ठकों की संख्या भी 5 है, इसलिए यह बराबर बिंदु है।

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

  • हर इंडेक्स तक स्ट्रिंग में दिखाई देने वाले ओपनिंग ब्रैकेट्स की संख्या को स्टोर करें।
  • संग्रह में बंद कोष्ठकों की संख्या प्रत्येक अनुक्रमणिका I तक दिखाई देती है लेकिन इसे अंतिम अनुक्रमणिका से किया जाना चाहिए।
  • जांचें कि क्या किसी अनुक्रमणिका में कोष्ठक खोलने और बंद करने का मान समान है।

उदाहरण

#include<iostream>
#include<cmath>
using namespace std;
int findEqualPoint(string str) {
   int total_length = str.length();
   int open[total_length+1] = {0}, close[total_length+1] = {0};
   int index = -1;
   open[0] = 0;
   close[total_length] = 0;
   if (str[0]=='(') //check whether first bracket is opening or not, if so mark open[1] = 1
   open[1] = 1;
   if (str[total_length-1] == ')') //check whether first bracket is closing or not, if so mark       close[end] = 1
   close[total_length-1] = 1;
   for (int i = 1; i < total_length; i++) {
      if ( str[i] == '(' )
      open[i+1] = open[i] + 1;
   else
      open[i+1] = open[i];
   }
   for (int i = total_length-2; i >= 0; i--) {
      if ( str[i] == ')' )
         close[i] = close[i+1] + 1;
      else
         close[i] = close[i+1];
   }
   if (open[total_length] == 0)
      return total_length;
   if (close[0] == 0)
      return 0;
   for (int i=0; i<=total_length; i++)
      if (open[i] == close[i])
      index = i;
   return index;
}
int main() {
   string str = "(()))(()()())))";
   cout << "Index of equal point: " << findEqualPoint(str);
}

आउटपुट

Index of equal point: 9

  1. C++ का उपयोग करके एक स्ट्रिंग के सबस्ट्रिंग की संख्या ज्ञात करें

    इस लेख में, आप किसी दिए गए स्ट्रिंग में बनाए जा सकने वाले सबस्ट्रिंग (गैर-रिक्त) की संख्या को खोजने के तरीकों के बारे में जानेंगे। Input : string = “moon” Output : 10 Explanation: Substrings are ‘m’, ‘o’, ‘o’, ‘n’, ‘mo’, &lsqu

  1. C++ का उपयोग करके कोष्ठकों की एक स्ट्रिंग में एक समान बिंदु खोजें।

    यहां हम देखेंगे कि कोष्ठक की एक स्ट्रिंग में समान अंक कैसे प्राप्त करें। समान बिंदु सूचकांक I है, जैसे कि इसके पहले खुलने वाले कोष्ठकों की संख्या इसके बाद के समापन कोष्ठक की संख्या के बराबर है। मान लीजिए कि एक ब्रैकेट स्ट्रिंग (())) (() () ())) की तरह है, अगर हम करीब से देखते हैं, तो हम प्राप्त कर स

  1. C++ में दिए गए सरणी में एक निश्चित बिंदु (सूचकांक के बराबर मान) खोजें

    यहां हम देखेंगे कि किसी दिए गए सरणी में निश्चित बिंदु कैसे खोजें। सरणी में एक तत्व को निश्चित बिंदु के रूप में दर्शाया जाएगा यदि मान उसके सूचकांक के समान है। यदि कोई है तो यह प्रोग्राम मान लौटाएगा, अन्यथा -1 लौटाएगा। सरणी ऋणात्मक संख्याएँ भी धारण कर सकती है। और डेटा तत्वों को क्रमबद्ध किया जाता है।