leetcode 高薪_LeetCode 第 125 号问题:验证回文串
本文首发于公众号「五分钟学算法」,是图解 LeetCode 系列文章之一。
个人网站:https://www.cxyxiaowu.com
题目来源于 LeetCode 第 125 号问题:验证回文串。这道题目是 初级程序员 在面试的时候经常遇到的一道算法题,而且面试官喜欢面试者手写!
题目描述
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama"
输出: true
示例 2:
输入: "race a car"
输出: false
题目解析
先理解一个概念:所谓回文,就是一个正读和反读都一样的字符串。
先假设是验证单词 level
是否是回文字符串,通过概念涉及到 正 与 反 ,那么很容易想到使用双指针,从字符的开头和结尾处开始遍历整个字符串,相同则继续向前寻找,不同则直接返回 false。
而这里与单独验证一个单词是否是回文字符串有所区别的是加入了 空格 与 非字母数字的字符,但实际上的做法一样的:
一开始先建立两个指针,left 和 right , 让它们分别从字符的开头和结尾处开始遍历整个字符串。
如果遇到非字母数字的字符就跳过,继续往下找,直到找到下一个字母数字或者结束遍历,如果遇到大写字母,就将其转为小写。
当左右指针都找到字母数字时,可以进行比较的时候,比较这两个字符,如果相等,则两个指针向它们的前进方向挪动,然后继续比较下面两个分别找到的字母数字,若不相等,直接返回 false。
动画描述
代码实现
注:isLetterOrDigit
方法确定指定的字符是否为字母或数字。
class Solution {public boolean isPalindrome(String s) {if(s.length() == 0)return true;int l = 0, r = s.length() - 1;while(l < r){//确定指定的字符是否为字母或数字if(!Character.isLetterOrDigit(s.charAt(l))){l++;}else if(!Character.isLetterOrDigit(s.charAt(r))){r--;}else{if(Character.toLowerCase(s.charAt(l)) != Character.toLowerCase(s.charAt(r)))return false;l++;r--;} }return true;}
}
leetcode 高薪_LeetCode 第 125 号问题:验证回文串相关推荐
- LeetCode:验证回文串【125】
LeetCode:验证回文串[125] 题目描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: ...
- 回文串问题(leetcode 125. 验证回文串 c#)
leetcode 125. 验证回文串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: &quo ...
- Leetcode:125.验证回文串,917仅仅反转字母,387字符串的第一个唯一字符
文章目录 125.验证回文串 题目描述 示例 思路分析 代码实现 917.仅仅反转字母 题目描述 示例 思路分析 代码实现 387.字符串的第一个唯一字符 题目描述 示例 思路分析 代码实现: 125 ...
- leetcode系列--125.验证回文串
leetcode系列–第125题.验证回文串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 输入: "A ...
- 力扣--125验证回文串/680验证回文字符串II
125验证回文串 python代码 常规 def isPalindrome(s):if len(s) < 2:return TruesList = []s = s.lower()print(s) ...
- java实现回文验证_LeetCode 精选 TOP 面试题(Java 实现)—— 验证回文串
文章目录 一.题目描述 1.1 题目 验证回文串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例 1: 输入: ...
- c语言判断字符串是不是回文_125. 验证回文串
125. 验证回文串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 示例1: 输入: "A man, a ...
- 算法------验证回文串
验证回文串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写.说明:本题中,我们将空字符串定义为有效的回文串.示例 1:输入: "A man, a plan, a ...
- Python中判断字符是否为字母、数字、字母和数字组合,验证回文串(LeetCode125)
判断字符串是否为字母.数字 函数str.isdigit()判断字符是否为数字,函数str.isalpha()判断字符是否为字母,函数isalnum()判断字符是否为数字字母组合. 上代码: str1 ...
最新文章
- It is currently in use by another Gradle instance
- 深入理解 Kotlin Coroutine (一)
- 记录些实用的linux指令串
- HTML第八章ppt,第八章 web基础教程之HTML篇v1.0.ppt
- 产品认知:产品经理需要具备哪些核心竞争力?
- Windows消息队列一
- Android编程之如何取得View的当前位置
- 解决php导出excel 长数字变成科学计数法
- 移动web UI推荐
- python实现证件照换底色
- linux服务篇-Squid服务
- nand flash地址机制
- halcon学习-算子学习
- Python输出函数print()总结(python print())
- Linux常用命令-详细1
- 汉诺塔python创新设计_递归经典案例汉诺塔 python实现
- 天池比赛 Docker 解决无法读取测试集,提交成功
- 递归算法时间复杂度的数学证明过程(主定理)
- 为何华为手机干不过小米
- 【python】hasattr()、getattr()、setattr() 函数使用详解
热门文章
- 需求分析的图形工具(层次方框 warnier IPO)
- 实体以及实体型和实体集
- RedHat Linux 7.3基础环境搭建
- hive metastore mysql_Hive MetaStore的结构
- Colly实现豆瓣电影Top250爬取
- Java笔记13-兄弟连在线考试系统
- java线程提高速度_如何在JAVA中减慢线程速度
- amd cpu不能在cmd环境下运行java代码_「我们一起学Java02」JDK、JRE、JVM简介,Java开发平台的搭建...
- Delphi控件的“拿来主义”
- 企业面试中关于MYSQL重点的28道面试题解答