検索で私の問題に固有のものは何も見つかりませんでした:
アルファベット{a、b、c}があり、奇数のaを持つ文字列のセットを生成する必要があります。
有効:ababaccccc baaaccccc cab caabaaac
無効:baac caacccb caabbbaac
試み:
\b[bc]*a{3}[bc]*\b
しかし、これは非常に限られています。
検索で私の問題に固有のものは何も見つかりませんでした:
アルファベット{a、b、c}があり、奇数のaを持つ文字列のセットを生成する必要があります。
有効:ababaccccc baaaccccc cab caabaaac
無効:baac caacccb caabbbaac
試み:
\b[bc]*a{3}[bc]*\b
しかし、これは非常に限られています。
次の正規表現が機能するはずです。
\b[bc]*a(([bc]*a){2})*[bc]*\b
正規表現なしのソリューション、つまり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");
}
}
簡単ではないでしょうか