给定一个长度为 n 的字符串,请编写一个函数判断该字符串是否回文。如果是回文请返回true,否则返回false。 
   字符串回文指该字符串正序与其逆序逐字符一致。 
   数据范围:
 
   要求:空间复杂度 ) ,时间复杂度
,时间复杂度 ) 
  
                                        "absba"
true
"ranko"
false
"yamatomaya"
false
"a"
true
字符串长度不大于1000000,且仅由小写字母组成
class Solution: def judge(self , str ): # write code here if not str: return True # 库函数 new_str = str[::-1] return new_str == str
class Solution: def judge(self , str ): # write code here if not str: return True # 比对left和right是否一致 # 一致,++left, right-- # 不一致,fasle # left == right 则退出 left = 0 right = len(str)-1 while left < right and left != right: if str[left] == str[right]: left +=1 right -=1 else: return False return True
public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     * 
     * @param str string字符串 待判断的字符串
     * @return bool布尔型
     */
    int left=0;
    public boolean judge (String str) {
        // write code here
        char[] ss=str.toCharArray();
        int n=ss.length;
        if(n<2) return true;
        return helper(ss,0);
    }
    public boolean helper(char[] ss,int right){
        if(right==ss.length) return true;
        boolean flag=helper(ss,right+1);
        flag=flag&&(ss[left]==ss[right]);
        left++;
        return flag;
    }
} //也就是一行代码的事情
public boolean judge (String str) {
        return str.equals(new StringBuilder(str).reverse().toString());
    } #include <stdbool.h>        // 必须申明,否则编译错误
bool judge(char* str ) {
    // write code here
    int left, right;
    left = 0;
    right = strlen(str)-1;
    for (left; left <= right; right--, left++)
    {
        if (*(str+left) == *(str+right))
            continue;
        else
            break;
    }
    if (left <= right)
        return false;
    else
        return true;
} public boolean judge (String str) {
        for(int i=0;i<str.length()/2;i++){
            if(str.charAt(i)!=str.charAt(str.length()-1-i))
                return false;
        }
        return true;
    } public boolean judge (String str) {
        // write code here
        String str2 = new StringBuffer(str).reverse().toString();
        return str.equals(str2);
    } //左右双指针
function judge( str ) {
    if(str.length === 0) return true;
    let left = 0;
    let right = str.length - 1;
    while(left < right){
        if(str[left] !== str[right]){
            return false;
        }
        left++;
        right--;
    }
    return true;
}
 //for循环法
function judge( str ) {
    for(let i = 0; i < Math.floor(str.length / 2); i++){
        if(str[i] !== str[str.length-i-1])
            return false;
    }
    return true;
}
 public boolean judge (String str) {
    if (str == null || str.isEmpty()) return false;
    char[] arr = str.toCharArray();
    int left = 0;
    int right = arr.length - 1;
    while (left < right) {
        if (arr[left] != arr[right]) {
            return false;
        }
        left++;
        right--;
    }
    return true;
} pub fn judge(&self, str: String) -> bool {
    let a = str.as_bytes();
    let mut left = 0;
    let mut right = a.len() - 1;
    while left < right {
        if a[left] != a[right] {
            return false;
        }
        left += 1;
        right -= 1;
    }
    true
}