在搜索中找不到任何特定于我的问题的内容:
我有一个字母 {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");
}
}
不是更容易吗