私はCodingbat.com演習を行っています。私はこの演習で問題が発生しています: 文字列内のすべての 'x'文字に対して、文字列の後のどこかに 'y'文字が存在すれば、文字列はxyバランスされていると言います。だから "xxy"はバランスがとれていますが、 "xyx"はそうではありません。 1つの 'y'は複数のxのバランスをとることができます。指定された文字列がxy-balancedの場合は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;
}
このコードは例の例のすべてが、2つのために働いている:
xyBalance("y") → true **my code returns false**
xyBalance("") → true **my code returns false**
誰かが理由を説明できますか?あなたのおかげ=]
説明してくれてありがとう!私はそれを感謝し、より簡単なソリューションに感謝します。私は初心者です、私はそのことについては一度もありませんでした –
@PiyushKumarが喜んで:) – Paul