NC141:判断回文

判断回文

http://www.nowcoder.com/questionTerminal/e297fdd8e9f543059b0b5f05f3a7f3b2

解法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;
    }
名企高频面试算法题解 文章被收录于专栏

牛客题霸 - 程序员面试高频题 - 题解

全部评论

相关推荐

11-15 17:19
湖南大学 Java
成果成果成果果:这是哪个公司的hr,这么离谱吗,我没见过用性别卡技术岗的,身边女性同学拿大厂offer的比比皆是
点赞 评论 收藏
分享
头像
11-07 01:12
重庆大学 Java
精致的小松鼠人狠话不多:签哪了哥
点赞 评论 收藏
分享
评论
3
1
分享
牛客网
牛客企业服务