LeetCode(力扣):验证回文串

java 复制代码
class Solution {
    public boolean isPalindrome(String s) {
        //定义开头结尾指针
        int left = 0;
        int right = s.length() -1;
        //只要两指针没相遇就继续
        while(left < right){
            //遇到空格和标点符号直接跳过
            //这里需要额外再加left < right条件,防止全是标点符号导致越界
            while(left < right && !Character.isLetterOrDigit(s.charAt(left))){
                left++;
            }
            while(left <right && !Character.isLetterOrDigit(s.charAt(right))){
                right--;
            }
            //统一将大写转换成小写
            if(Character.toLowerCase(s.charAt(left)) != Character.toLowerCase(s.charAt(right))){
                return false;
            }
            left++;
            right--;
        }
        return true;
    }
}

Character.isLetterOrDigit(char ch):

判断字符是否为字母或数字

Character.toLowerCase(char ch):

大写变小写,已经是小写或者数字的原样返回

相关推荐
choumou_M19 分钟前
算法_1:由浅入深学习快速排序QuickSort
学习·算法·排序算法
Coder_Shenshen1 小时前
罗克韦尔ACD工程归档离线变量树解析
算法·c#
心仪久了会沦陷3 小时前
C语言数据结构入门——树与二叉树详解:概念、堆实现与链式遍历
c语言·数据结构·算法
小此方3 小时前
[算法实战论:动态规划]背包问题概念,01不满背包问题,01满背包问题,背包问题的滚动数组空间优化
算法·动态规划
悠仁さん4 小时前
【C++】哈希表
c++·算法·散列表
地平线开发者4 小时前
点云算法整理与常用计算模块:从数据到模型,再到工程与量化
算法·自动驾驶
武子康6 小时前
H3-World 为何在加载 LoRA 前,先检查导入的代码?
人工智能·深度学习·算法
秋天的怀念_David7 小时前
算法一千零一夜 · 第二十八夜 注册
java·程序人生·算法
Rain的Java大神之路9 小时前
LeetCode 37 解数独面试攻略:回溯 + 位掩码 + MRV,从暴力到毫秒级求解
java·后端·leetcode
NEFU_Jyj9 小时前
贝尔数(组合数学)
算法