C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++で余分な角かっこを削除した後、文字列のバランスを取ります


文字列は文字の配列です。この問題では、開き角かっこと閉じ括弧がある文字列が与えられます。そして、文字列から余分な角かっこを削除して、この文字列のバランスを取ります。

例を見てみましょう

Input : “)Tutor)ials(p(oin)t(...)”
Output : “Tutorials(p(oin)t(...))”

この問題を解決するために、文字列をトラバースして、一致する角かっこを確認します。角かっこが一致しない場合は、閉じ角かっこを削除します。

アルゴリズム

Step 1 : Traverse the string from left to right.
Step 2 : For opening bracket ‘(’ , print it and increase the count.
Step 3 : For occurence of closing bracket ‘)’ , print it only if count is greater than 0 and decrease the count.
Step 4 : Print all characters other than brackets are to be printed in the array.
Step 5 : In the last add closing brackets ‘)’ , to make the count 0 by decrementing count with every bracket.

#include<iostream>
#include<string.h>
using namespace std;
void balancedbrackets(string str){
   int count = 0, i;
   int n = str.length();
   for (i = 0; i < n; i++) {
      if (str[i] == '(') {
         cout << str[i];
         count++;
      }
      else if (str[i] == ')' && count != 0) {
         cout << str[i];
         count--;
      }
      else if (str[i] != ')')
         cout << str[i];
      }
      if (count != 0)
      for (i = 0; i < count; i++)
      cout << ")";
}
int main() {
   string str = ")Tutor)ials(p(oin)t(...)";
   cout<<"Original string : "<<str;
   cout<<"\nBalanced string : ";
   balancedbrackets(str);
   return 0;
}

出力

Original string : )Tutor)ials(p(oin)t(...)
Balanced string : Tutorials(p(oin)t(...))

  1. C++でN回カットした後の円のピースを数えます

    2D円に適用されるカットの数を表す整数Nが与えられます。各円は、円を2つに分割します。目標は、Nカット後に円の断片を見つけることです。 個数=2*いいえ。カットの 例を挙げて理解しましょう。 入力 − n =1 出力 −円の断片:2 説明 − 入力 − n =3 出力 −円の断片:6 説明 − 以下のプログラムで使用されているアプローチは次のとおりです いくつかのカットにNを使用します。 ピースを取る=1*N。 結果を印刷します。 例 #include <bits/stdc++.h> using namespace st

  2. C++で同じネイバーを持つ文字をカウントします

    たとえば、strを含む文字列が与えられます。タスクは、同じ隣接文字を持つ文字列str内の文字数を計算することであり、文字列内の文字の左側と右側の両方が含まれます。また、このシナリオでは、文字列の最初と最後の文字は、隣接する文字が1つしかないため、常に考慮されます。 例 Input − string str = “poiot” Output − count is 3 説明 −指定された文字列文字p、t、およびiは同じネイバーを持っているため、カウントは3に増加します。 Input − string str = “nitih