【发布时间】:2017-05-07 14:31:39
【问题描述】:
我正在做 Codingbat.com 练习。我在这个练习中遇到了问题: 如果对于字符串中的所有 'x' 字符,在字符串后面的某处存在一个 'y' 字符,我们会说一个字符串是 xy 平衡的。所以“xxy”是平衡的,但“xyx”不是。一个“y”可以平衡多个“x”。如果给定的字符串是 xy 平衡的,则返回 true。
xyBalance("aaxbby") → true
xyBalance("aaxbb") → false
xyBalance("yaaxbb") → false
我知道正确的解决方案,但我很好奇为什么以下解决方案不起作用:
public boolean xyBalance(String str) {
for(int i = 0; i < str.length() -1 ;i++) {
if(str.indexOf("x") == -1 ) {
return true;
}
else if(str.charAt(str.length()-1) == 'x') {
return false;
}
else if (str.indexOf("x",i) < str.indexOf("y",i)) {
return true;
}
}
return false;
}
此代码适用于除两个示例案例之外的所有案例:
xyBalance("y") → true **my code returns false**
xyBalance("") → true **my code returns false**
有人可以解释为什么吗?谢谢你=]
【问题讨论】:
标签: java string if-statement boolean indexof