2.给定一个长度为 n 的字符串,请编写一个函数判断该字符串是否回文。如果是回文请返回true,否则返回false。
字符串回文指该字符串正序与其逆序逐字符一致。
数据范围:0 < n \le 10000000<n≤1000000
要求:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)
示例1
输入:“absba”
返回值:true
示例2
输入:“ranko”
返回值:false
示例3
输入:“yamatomaya”
返回值:false
示例4
输入:“a”
返回值:true
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* @param str string字符串 待判断的字符串
* @return bool布尔型
*/
public boolean judge (String str) {
// write code here
//将字符串转化为字符数组
char[] s = str.toCharArray();
//定义左右指针
int left = 0;
int right = str.length() - 1;
while (left < right) {
//看首尾是否相同
if (s[left] != s[right])
return false;
//往中间靠
left++;
right--;
}
return true;
}
}