美文网首页
LeetCode 125.验证回文串

LeetCode 125.验证回文串

作者: MrGeekr极氪 | 来源:发表于2019-08-06 17:08 被阅读0次

    题目:

    题目地址:https://leetcode-cn.com/problems/valid-palindrome/

    问题描述:

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

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

    示例 1:

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

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

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/valid-palindrome
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    我的解题思路:

    双指针法:

    1. 将字符串中的字母都转为小写,方便比较
    2. 字符串转成字符数组
    3. 因为题目只比较字母和数字,使用 Character.isLetterOrDigit 方法,如果不是字母或数字,则指针移动直到符合条件
    4. 对比左指针和右指针的字符是否相同,相同就移动指针,进入下一个循环
        public static boolean isPalindrome(String s) {
            int left=0;
            int right=s.length()-1;
            String lowerCase=s.toLowerCase();//字符串中的字母都转为小写,方便比较
            char[] chars=lowerCase.toCharArray();
            while (left<right){
                while ((!Character.isLetterOrDigit(chars[left]))&&left<right){
                    left++;
                }
                while ((!Character.isLetterOrDigit(chars[right]))&&left<right){
                    right--;
                }
                if (chars[left]!=chars[right]){
                    return false;
                }
                left++;
                right--;
    
            }
            return true;
        }
    
    

    相关文章

      网友评论

          本文标题:LeetCode 125.验证回文串

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