面试经典-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;
    }
}
相关推荐
香香甜甜的辣椒炒肉2 分钟前
Spring JDBC 万能模板
java·后端·spring
liaowenxiong5 分钟前
实现类和接口的关系
java
W23035765737 分钟前
回溯法经典实战:0/1 全排列与 N 皇后问题(递归 + 非递归双实现)
算法·回溯法·n皇后
编程迪8 分钟前
基于Java和uniapp开发的名片交换分享系统企业名片管理软件个人电子名片小程序源码
java·uni-app·电子名片·名片小程序·名片软件源码
开开心心就好9 分钟前
经典塔防游戏移植移动端随时畅玩
java·前端·科技·游戏·edge·django·pdf
Ruihong18 分钟前
Vue 3 defineOptions 宏,用 VuReact 编译成 React 长什么样?
vue.js·react.js·面试
YuanDaima204820 分钟前
队列与单调队列基础原理与题目说明
人工智能·python·算法·leetcode·队列·手撕代码
ZPC821021 分钟前
moveit servo 发指令给real arm
java·前端·数据库
企微增长观察21 分钟前
企业微信怎么注册?2026年完整注册流程
java·人工智能·企业微信
我叫黑大帅22 分钟前
TCP 长连接服务:登录注册认证体系实战指南
后端·面试·go