-4

文字列内に含まれる文字列を取得したいのですが、見るたび(xxx) に のみが取得されxxxます。

int find(char* str)たとえば、関数を使用して再帰的に実行しようとしています。

この関数は1、何もない'('')'残っている (すべて削除された)場合に戻り、そうでない場合に戻り0ます。

文字列はそのままにしておくことができます。指定された条件を確認するだけです。

OK 入力: (xxx)(zzz(yyy)zzz)

悪い入力:xx(x(zzz)(y

これはCでどのように行うことができますか?

4

2 に答える 2

5

シンプルなスタックは、これを解決する良い方法です。「(」がスタックにプッシュされるたびに。「)」がスタックからポップされるたびに。空のスタックから取り出そうとしたり、完了したときにスタックに何かが残っている場合は、入力が不適切でした。

編集:カウンターでも同じことができます。それぞれインクリメントおよびデクリメントします。カウンタが負になる場合は、false を返します。それ以外の場合は、終了時に 0 の場合は true を返し、それ以外の場合は false を返します。したがって、カウンターは「スタック」のサイズを表します。

于 2012-05-07T22:46:20.740 に答える