美文网首页刷爆力扣
【29】验证回文串

【29】验证回文串

作者: 公孙剑人 | 来源:发表于2021-05-18 21:51 被阅读0次

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-palindrome/

题目

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

说明:本题中,我们将空字符串定义为有效的回文串。

示例 1:
输入: "A man, a plan, a canal: Panama"
输出: true

示例 2:
输入: "race a car"
输出: false

思路

  1. 使用左右指针,挨个比较;
  2. 边界条件为左右指针重合,则为回文串,返回true即可,否则指针不会重合

代码

    public boolean isPalindrome(String s) {
        if (s == null) {
            return true;
        }
        int right = s.length() - 1;
        int left = 0;
        // 判断左右指针是否重合
        while (left < right) {
            char leftChar = Character.toLowerCase(s.charAt(left));
            // 判断左边字符,不是数字or字符,则往前走一步
            if (!isCharType(leftChar)) {
                left ++;
                continue;
            }
            char rightChar = Character.toLowerCase(s.charAt(right));
            // 判断右边字符,不是数字or字符,则往后退一步
            if (!isCharType(rightChar)) {
                right --;
                continue;
            }
            // 若相等,移动指针继续判断
            if (leftChar == rightChar) {
                left ++;
                right --;
            } else {
                return false;
            }
        }
        return true;
    }

    /**
     * 判断是否数字or字符
     * @param c
     * @return
     */
    private boolean isCharType(char c) {
        return c >= 'a' && c <= 'z'
                || c <= 'A' && c >= 'Z'
                || c >= '0' && c <= '9';
    }

结果

执行结果

相关文章

  • 【29】验证回文串

    来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-...

  • leecode刷题(15)-- 验证回文字符串

    leecode刷题(15)-- 验证回文字符串 验证回文字符串 给定一个字符串,验证它是否是回文串,只考虑字母和数...

  • 关于回文问题

    回文问题的解法:双指针,栈,reverse 1. 409. 最长回文串[✔]2. 125. 验证回文串[✔]3. ...

  • LeetCode125 验证回文串

    LeetCode125 验证回文串 题目描述: 代码:

  • 验证回文串

    给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义...

  • 验证回文串

    题目 难度级别:简单 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题...

  • 验证回文串

    题目 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串...

  • 验证回文串

    给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为...

  • LeetCode之验证回文串——JavaScript实现

    题目: 125. 验证回文串 描述: 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小...

  • 字符串问题合集

    1. 验证回文串 题目描述: 输入一个字符串,只关注字母和数字,判断字符串是否为回文串。空字符串也可以认为是回文串...

网友评论

    本文标题:【29】验证回文串

    本文链接:https://www.haomeiwen.com/subject/jsadjltx.html