我做Codingbat.com练习。我有一个问题,这个练习: 我们会说一个字符串是XY平衡,如果该字符串中的所有“X”字符,有串在以后的某个地方存在“Y”字符。所以“xxy”是平衡的,但“xyx”不是。一个'y'可以平衡多个'x'。如果给定字符串是xy平衡的,则返回true。为什么我的代码返回false以下条件?
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**
有人可以解释,为什么?谢谢你=]
谢谢你解释!我很感激,并感谢您提供更简单的解决方案。我是一个新手,我从来没有,即使有关哈哈 –
@PiyushKumar很高兴帮助:) – Paul