【发布时间】:2015-08-20 00:40:41
【问题描述】:
如果旁边有另一个'g',我需要实现字符串中的小写'g' 是“快乐”的代码。然后,如果给定字符串中的所有g's 都满意,则返回true。例如:
gHappy("xxggxx") → 真
gHappy("xxgxx") → 假
gHappy("xxggyygxx") → false
这是我试过的代码:
public boolean gHappy(String str) {
if(str.length() < 1){
return false;
}
boolean result = false;
for(int i = 1; i < str.length() - 1; i++){
if(str.charAt(i) == 'g' && str.charAt(i - 1) == 'g'
|| str.charAt(i + 1) == 'g'){
result = true;
}
}
return result;
}
但我没有通过一些测试用例,例如:
gHappy("gg") → 应该是
true→ 得到false
gHappy("xxgggxyg") → 应该是false→ 得到true
【问题讨论】:
-
可能是运算符优先级问题,&& vs ||但我不确定。尝试将条件括在括号中。 if 1 && (2||3) 看看会发生什么
-
或者,颠倒你的逻辑,对任何失败的情况立即返回 false,否则返回 true。
-
另外,1 不小于 2-1。
-
str.contains("gg")??