C コンパイラは文字列を文字の配列として扱うため、位置に基づいて文字列から文字を簡単に削除できます。文字列の最初と最後の位置で括弧が存在するかどうかを確認し、括弧を削除する必要があります。文字列を別の変数にコピーして表示できます。
C には、文字列を操作するために効率的に使用できる事前定義された関数が多数あります。 C 言語では、関数を使用して開始位置または終了位置から文字を簡単に削除できます。
括弧は入力文字列の一部である単一の文字であり、以下に示すロジックとアルゴリズムに従って文字列から削除できます。
文字はキーボード上で見られる任意の英数字キーであり、C の文字変数に格納されます。() は c では括弧と呼ばれます。ユーザーが入力した文字列内のこの文字を識別し、文字列から削除する必要があります。
配列は、単一の名前と連続した番号でアドレス指定される多数の格納場所を持つ変数であり、文字列は文字の配列です。
正規表現を解くときなど、文字列から括弧を削除する必要がある状況は数多くあります。
###文法###
関数 countRemoval は、文字列 str を入力として受け取り、文字列内のすべての平衡括弧サブシーケンスを空にするために必要な削除ペアの数を表す整数値を返します。この関数は変数 count を使用して、必要な削除の数を追跡します。初期値は 0 に設定されます。また、変数 Balance を使用して、文字列内の左括弧と右括弧の数のバランスを追跡します。次に、関数は文字列の長さ全体にわたって反復処理を行い、各インデックスの文字をチェックします。文字が左括弧の場合は残高が 1 増加し、右括弧の場合は残高が 1 減ります。バランスがマイナスになる場合は、右ブラケットが余分にあり、除去の数がプラス 1 され、バランスが 0 にリセットされることを意味します。ループの後、文字列内のすべての平衡括弧サブシーケンスを空にするために必要な削除量として、残りの残高を 2 で割った値が含まれるようにカウントが更新されます。ステップ 2
- 整数変数 len,n,iステップ 3
- コンソールから str1 を受け入れるステップ 4
- 最初の文字が (ステップ 5
- n = 1 の場合ステップ 6
- nステップ 7
- str2 の最後の文字が ) であるかどうかを確認します。ステップ 8
- 「はい」の場合は、\0 に置き換えます。ステップ 9
- 入力文字列のマイナス記号 () を含む str2 を出力します。###方法### 方法 1
- ブルート フォース再帰:最初の方法では、ブルート フォース再帰を使用して、考えられるすべてのサブシーケンスを検索し、それらがバランスが取れているかどうかを確認します。サブシーケンスのバランスが取れている場合は、括弧のペアを削除し、削除された括弧のペアの数を数えます。文字列を空にするために必要なペア削除の最小数を計算します。方法 1 暴力的な再帰 ###コード###
このコードでは、考えられるすべてのサブシーケンスの組み合わせをチェックします。その結果、指数関数的な時間計算量が発生します。入力が大きい場合、この方法は効率的ではない可能性があります。リーリー ###出力### リーリー 方法 2 ###例###
この動的プログラミング ソリューションは、すべての平衡括弧サブシーケンスを空にするために必要な最小削除数を計算します。文字列を反復処理し、左括弧の数で 1 次元の DP テーブルを更新し、削除する最小量として最終的な DP 値を返します。以上がすべてのバランスの取れたブラケットのサブシーケンスが空になるように削除する必要があるペアの数を計算します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。