我正在处理这个codingbat问题:如果对于字符串中的每个'*'(星号),如果在星号之前和之后都有字符,则返回true,它们是相同的。例子:
sameStarChar("xy*yzz") → true
sameStarChar("xy*zzz") → false
sameStarChar("*xa*az") → true
我的第一次代码尝试是:
public boolean sameStarChar(String str) {
//boolean flag = false;
for(int i =1;i< str.length()-1; i++){
if(str.charAt(i) == '*' && str.charAt(i-1) == str.charAt(i+1)){
return true;
}
}
return false;
}
并且没有通过几个案例:sameStarChar("12*2*3*") → false ,sameStarChar("XY YYYY Z*") → false。
但是,如果将代码更改为:
public boolean sameStarChar(String str) {
//boolean flag = false;
for(int i =1;i< str.length()-1; i++){
if(str.charAt(i) == '*' && str.charAt(i-1) != str.charAt(i+1)){
return false;
}
}
return true;
}
结果得到纠正。我不明白我的第一次尝试有什么问题。
慕侠2389804
ABOUTYOU
jeck猫
相关分类