面试经典-34-验证回文串

题目

如果在将所有大写字符转换为小写字符、并移除所有非字母数字字符之后,短语正着读和反着读都一样。则可以认为该短语是一个 回文串 。

字母和数字都属于字母数字字符。

给你一个字符串 s,如果它是 回文串 ,返回 true ;否则,返回 false 。

示例 1:

输入: s = "A man, a plan, a canal: Panama"

输出:true

解释:"amanaplanacanalpanama" 是回文串。

java 复制代码
class Solution {
    public boolean isPalindrome(String s) {
        int i = 0, j = s.length() - 1;
        while (i <= j) {
            while (i <= j && !Character.isLetter(s.charAt(i)) && !Character.isDigit(s.charAt(i))) {
                i++;
            }
            while (i <= j && !Character.isLetter(s.charAt(j)) && !Character.isDigit(s.charAt(j))) {
                j--;
            }
            if (i > j) {
                break;
            }
            char leftChar = Character.toLowerCase(s.charAt(i));
            char rightChar = Character.toLowerCase(s.charAt(j));
            if (leftChar != rightChar) {
                return false;
            }
            i++;
            j--;
        }
        return true;
    }
}
相关推荐
王老师青少年编程15 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【反悔贪心】:种树
c++·算法·贪心·反悔贪心·csp·信奥赛·种树
南宫萧幕15 小时前
基于 PSO 的 HEV 能量管理策略:从联合仿真建模到排错实战
开发语言·python·算法·matlab·控制
c++之路15 小时前
C++ 高频易错点
java·jvm·c++
java1234_小锋15 小时前
Spring AI 2.0 开发Java Agent智能体 - 新建 HelloWorld 项目
java·人工智能·spring·spring ai
yue20040315 小时前
Spring IoC 与 DI 核心概念与原理笔记
java·笔记·spring
IT 青年15 小时前
网安面试经(13)
面试·网安
wuminyu15 小时前
专家视角看Java多态性的底层基石vtable(虚函数表)构建过程解析
java·linux·c语言·jvm·c++
phltxy15 小时前
Spring Cloud 服务注册与发现:Eureka 从原理到实战
java·spring cloud·eureka
生物信息与育种15 小时前
全基因组重测序及群体遗传与进化分析技术服务指南
人工智能·深度学习·算法·数据分析·r语言
测试那点事儿15 小时前
零基础API 接口自动化框架源代码:结构、功能与运行时序
java·servlet·自动化