나는 Codingbat.com 연습을하고있다. 이 연습에 문제가 있습니다 : 문자열의 모든 'x'문자가 문자열의 뒷부분에 'y'문자가 있으면 문자열이 xy 균형을 유지한다고 가정합니다. 따라서 "xxy"는 균형을 이루지 만 "xyx"는 균형이 맞지 않습니다. 하나의 '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;
}
이 코드 예제의 경우 두 제외한 모든 위해 일하고 :
xyBalance("y") → true **my code returns false**
xyBalance("") → true **my code returns false**
누군가 이유를 설명 할 수 있습니까? 덕분에 당신 =]
설명해 주셔서 감사합니다! 나는 그것을 고맙게 여기고, 더 간단한 해결책을 가져 주셔서 감사합니다. 임마 초보자, 나는 그 하하에 대해 비록 결코 없을 것입니다 –
@ PiyushKumar 도움을 기쁘게 :) – Paul