10

検索で私の問題に固有のものは何も見つかりませんでした:

アルファベット{a、b、c}があり、奇数のaを持つ文字列のセットを生成する必要があります。

有効:ababaccccc baaaccccc cab caabaaac

無効:baac caacccb caabbbaac

試み:

\b[bc]*a{3}[bc]*\bしかし、これは非常に限られています。

4

3 に答える 3

8

次の正規表現が機能するはずです。

\b[bc]*a(([bc]*a){2})*[bc]*\b
于 2012-04-24T12:38:35.217 に答える
2

正規表現なしのソリューション、つまりJavaが必要な場合:

String arr[] = {"ababaccccc",  "baaaccccc" , "caabaaac", "baac", "caacccb", "caabbbaac"};   

for (String string : arr) {
            int counter = 0;
            for (int i = 0; i < string.length(); i++) {
                if (string.charAt(i) == 'a') {
                    counter++;
                }
            }
            if ((counter & 1) == 0) {
                System.out.println(string + " is invalid");
            } else {
                System.out.println(string + " is valid");
            }
        }
于 2012-04-24T12:43:06.830 に答える
0

簡単ではないでしょうか

  1. 入力文字列を空白で分割します
  2. すべての要素の「a」を数える
  3. カウントの結果に基づいて、承認または拒否しますか?
于 2012-04-24T12:45:50.933 に答える