当前位置: 首页 > news >正文

Leetcode125. 验证回文串

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

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

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

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

解题思路:

我们直接在原字符串 sss 上使用双指针。在移动任意一个指针时,需要不断地向另一指针的方向移动,直到遇到一个字母或数字字符,或者两指针重合为止。也就是说,我们每次将指针移到下一个字母字符或数字字符,再判断这两个指针指向的字符是否相同。

 

代码如下:

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

 

http://www.lryc.cn/news/155720.html

相关文章:

  • 【Yellowbrick】特征可视化分析
  • Android大厂需要刷的(999道)面试题
  • Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
  • Java设计模式:四、行为型模式-08:策略模式
  • ICCOA蓝牙数字车钥匙2.0
  • ArcGIS土地利用程度综合指数分析
  • 服务端请求伪造(SSRF)及漏洞复现
  • v-model和v-bind
  • 详细介绍 弹性盒子(display:flex)
  • Docker使用数据卷挂载进行数据存储与共享
  • [力扣146. LRU 缓存 ](https://leetcode.cn/problems/lru-cache/description/)
  • Mysql存储引擎
  • 算法通关村-----数组实现加法专题问题解析
  • 倒排表的压缩算法
  • Android studio实现自定义圆形进度条 带刻度进度条 计步效果 时速表 水波纹效果
  • 使用【宝塔+docker】在云服务器上部署基于SpringBoot 和 Dubbo RPC 的项目:踩坑记录
  • 【算法与数据结构】617、LeetCode合并二叉树
  • ffmpeg把RTSP流分段录制成MP4,如果能把ffmpeg.exe改成ffmpeg.dll用,那音视频开发的难度直接就降一个维度啊
  • 朝夕光年游戏自动化测试实践
  • 数据结构基本概念
  • 【javaweb】学习日记Day9 - Mybatis 基础操作
  • Mybatis学习|Mybatis缓存:一级缓存、二级缓存
  • 230903文本docx
  • Mysql-DML(数据处理语言)
  • 部署项目至服务器
  • OSI与TCP IP各层的结构与功能,都有哪些协议
  • 【2023年11月第四版教材】第10章《进度管理》(第三部分)
  • 【Vuex状态管理】Vuex的基本使用;核心概念State、Getters、Mutations、Actions、Modules的基本使用
  • Linux centos7 bash编程(循环与条件判断)
  • 设计模式-6--装饰者模式(Decorator Pattern)