我做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