解法1: 𝑠𝑡𝑟[𝑖] != 𝑠𝑡𝑟[𝑙𝑒𝑛−1−𝑖]

进行𝑙𝑒𝑛/2次判断, 如果出现一次 𝑠𝑡𝑟[𝑖] != 𝑠𝑡𝑟[𝑙𝑒𝑛−1−𝑖] 那就不是回文,𝑙𝑒𝑛/2次判断全都相等,那么就是回文串
    public boolean judge (String str) {
        // write code here
        if(str.length()==0 || str==null){
            return false;
        }
        char[] ch=str.toCharArray();
        int n=ch.length;
        for(int i=0;i<n/2;i++){
            if(ch[i]!=ch[n-i-1]){
                return false;
            }
        }
        return true;
    }

解法2:双指针

在首尾各创建一个指针,指针所指向的值不相同时则表示此字符串不是回文串

public boolean judge(String str) {
        // write code here
        if (str == null || str.length() == 1)
            return true;
        int i = 0;
        int j = str.length() - 1;
        while (i < j) {
            if (str.charAt(i) != str.charAt(j))
                return false;
            i++;
            j--;
        }
        return true;
    }

解法3:栈

字符串先入栈,然后依次弹出判断是否一致

public boolean judge (String str) {
        // write code here
        if(str.length()==0 || str==null){
            return false;
        }
        char[] ch=str.toCharArray();
        Stack<Character> stack=new Stack<>();
        for(int i=0;i<ch.length;i++){
            stack.push(ch[i]);
        }
        for(int i=0;i<ch.length;i++){
            if(stack.pop()!=ch[i]){
                return false;
            }
        }
        return true;
    }