私は最近、文字列が平衡しているかどうかを確認するようにインタビューの質問をしました。文字列は、次の2つの条件の下で平衡します。文字列内の一致する文字の数をカウントします(正規表現のみ)?
- 'a'と 'c'の出現の合計は偶数です。
- 'b'と 'd'の出現の合計は偶数です。
したがって、例「cccddbba
」の場合、これらの条件は成立します。出現数がc (3)
+出現がa (1)
はeven (1+3=4)
であり、出現数はd (2)
+出現数がです。文字列には 'a'、 'b'、 'c'、および 'd'の文字しか含めることができません。正規表現はこの例だけでなく、どんな文字列でも動作するはずです。
私の仕事は正規表現を書くことだけでした。バックグラウンドでは、正規表現を使って見つかった 'a'と 'c'の一致数を数え、それらを合計します。同じことが 'b'と 'd'になります。
しばらくして正規表現に触れていないので、私は恐ろしく、^([ac])*?[db]*?([ac])*?$
までしか得られませんでしたが、それは明らかに間違っています。各アサーションについて
私はインタビューで、「いいえ、正規表現はそれに対して良い解決策ではない」と答えてくれることを尋ねられました。正規表現を使用すると、1が読み取れなくなります。2.将来の拡張のために思いもよらない。 – Tunaki
実際には面接の質問ではなく、実際のインタビューの質問ではありませんでしたので、私はあなたに言ったことに完全に同意します。 – dtgee