我正在codingbat上处理String-3中的SameEnds问题,但我不明白为什么它总是在“其他测试”部分中失败。其他所有测试均有效。
例如,在我的程序上: sameEnds(“ javaXYZjava”)→“ java”
sameEnds(“ Hello!and Hello!”)→“ Hello!”
sameEnds(“ x”)→“”
sameEnds(“ xxx”)→“ x”
sameEnds(“ xxxx”)→“ xx”
public String sameEnds(String string) {
if(string.length()%2 != 0){
int mid2 = string.length() / 2;
string = string.substring(0, mid2) +" " +string.substring(mid2);
}
String front = "";
for(int i =0;i<string.length();i++){
int mid = string.length() / 2;
String[] parts = {string.substring(0, mid),string.substring(mid)};
if(parts[0].equals(parts[1])){
front = parts[0];
}
else{
string = string.substring(0, mid-1) + string.substring(mid+1);
}
}
return front;
}
edit:我解决了!原来,当我应该有一个while循环时,我无缘无故地在字符串中循环。