LeetCode每日一题--125. 验证回文串(Java)

163 阅读1分钟

DailyChallenge

125. 验证回文串

Easy20200619

Description

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

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

示例 1:

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

示例 2:

输入: "race a car"
输出: false

链接:leetcode-cn.com/problems/va…

Solution

双指针+利用好Character这个类。

class Solution {
    public boolean isPalindrome(String s) {

        int left = 0, right = s.length()-1;
        while(left < right){
            while(!Character.isLetterOrDigit(s.charAt(left)) && left < right){
                left++;
            }
            while(!Character.isLetterOrDigit(s.charAt(right)) && right > left){
                right--;
            }
            // System.out.println("left:"+s.charAt(left)+ "right:"+s.charAt(right));
            if(!(Character.toLowerCase(s.charAt(left)) == Character.toLowerCase(s.charAt(right)))){
                return false;
            }
            left++;
            right--;
        }
        return true;

    }
}

参考官方题解

我的公众号:GitKid

暂时每日分享LeetCode,我在不断学习的过程中,公众号也在不断充实,欢迎大家扫码关注。

TODO:《剑指offer》系列

微信公众号
微信公众号

本文使用 mdnice 排版