手机版 欢迎访问it开发者社区(www.mfbz.cn)网站

当前位置: > 开发

2021.09.20 - 063.验证回文串

时间:2021/9/20 14:51:20|来源:|点击: 次

文章目录

  • 1. 题目
  • 2. 思路
    • (1) 双指针法
  • 3. 代码

1. 题目

在这里插入图片描述

2. 思路

(1) 双指针法

  • 最基本的左右双指针法,重点在于Character.isLetterOrDigit()和Character.toLowerCase()的调用。

3. 代码

public class Test {
    public static void main(String[] args) {
        Solution solution = new Solution();
        System.out.println(solution.isPalindrome("SQ:;:QS"));
    }
}

class Solution {
    public boolean isPalindrome(String s) {
        if (s == "") {
            return true;
        }
        int left = 0;
        int right = s.length() - 1;
        while (left < right) {
            while (left < right && !Character.isLetterOrDigit(s.charAt(left))) {
                left++;
            }
            while (left < right && !Character.isLetterOrDigit(s.charAt(right))) {
                right--;
            }
            if (left == right) {
                return true;
            }
            if (Character.toLowerCase(s.charAt(left)) != Character.toLowerCase(s.charAt(right))) {
                return false;
            }
            left++;
            right--;
        }
        return true;
    }
}

Copyright © 2002-2019 某某自媒体运营 版权所有