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

C++で有効にするために追加する括弧の最小数


問題の説明

括弧の文字列が与えられます。開き括弧’(‘または閉じ括弧‘)’をコンテナ化できます。結果の括弧文字列を有効にするには、最小数の括弧を見つける必要があります。

str =“((()”の場合、文字列の最後に2つの閉じ括弧、つまり‘))’が必要です

アルゴリズム

  • 開き括弧を数える
  • 閉じ括弧を数える
  • 必要な括弧=abs(開き括弧の数–閉じ括弧の数)

#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int requiredParentheses(string str) {
   int openingParentheses = 0, closingParentheses = 0;
   for (int i = 0; i < str.length(); ++i) {
      if (str[i] == '(') {
         ++openingParentheses;
      } else if (str[i] == ')') {
         ++closingParentheses;
      }
   }
   return abs(openingParentheses - closingParentheses);
}
int main() {
   string str = "((()";
   cout << "Required parentheses = " << requiredParentheses(str) << endl;
   return 0;
}

上記のプログラムをコンパイルして実行する場合。次の出力を生成します-

Required parentheses = 2

  1. C++で文字列回文を作成するための削除の最小数。

    問題の説明 サイズ「n」の文字列が与えられます。タスクは、文字列回文を作成するために最小数の文字を削除することです。 指定された文字列が「abcda」の場合、最初と最後を除く任意の2文字を削除して、回文にすることができます。 文字「b」と「c」を削除すると、「ada」文字列は回文になります 文字「c」と「d」を削除すると、「aba」文字列は回文になります 文字「b」と「d」を削除すると、「aca」文字列は回文になります アルゴリズム 1. Find longest palindromic subsequence of given string. Let’s

  2. Pythonで括弧を有効にするための最小追加

    (および)括弧の文字列Sがあるとすると、任意の位置に最小数の括弧を追加して、結果の括弧文字列が有効になるようにします。括弧文字列は、-の場合にのみ有効です。 空の文字列です XY(XとYを連結)と書くことができます。ここで、XとYは有効な文字列です (A)と書くことができます。ここで、Aは有効な文字列です。 したがって、文字列が ()))((のような場合、文字列を有効にするには、さらに4つの括弧を追加する必要があります。 これを解決するには、次の手順に従います- Sが空の場合は、0を返します count:=0、tempは配列、temp_counter:=0 for i in