牛客题05-判断回文
①将所给字符串倒叙反转生成新的字符串,比较新旧字符串是否相等
(即是反转字符串的三种方法)
只用reverse没有超时,剩下的两种方法均超时
public boolean judge (String str) {
// write code here
if(new StringBuilder(str).reverse().toString().equals(str))
return true;
else
return false;
}
②设定两个标识,left,right
left指向字符串所比较部分的最左边的字符
right指向字符串所比较部分的最右边的字符
left逐渐右移,right逐渐左移
直到相遇都相等则是回文否则不是
public boolean judge (String str) {
// write code here
int left = 0;
int right = str.length()-1;
while(str.charAt(left) == str.charAt(right)){
left++;
right--;
if(left >= right)//字符串长度为奇数个时相等
//字符串长度为偶数个时left < right(错过了)
return true;
}
return false;
}