【力扣】125. 验证回文串
发布日期:2021-06-29 19:44:08
浏览次数:4
分类:技术文章
本文共 1379 字,大约阅读时间需要 4 分钟。
题目:给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。示例 1:
输入: “A man, a plan, a canal: Panama” 输出: true示例 2:
输入: “race a car” 输出: falseclass Solution { public boolean isPalindrome(String s) { s = s.replace(" ", "");//去掉所有空格 s = s.replaceAll("[^a-zA-Z0-9\\u4E00-\\u9FA5]", "");//去掉除字母和数字汉字外字符 int j, i = s.length() / 2; if(s.length() % 2 == 0) j = s.length() / 2; else j = s.length() / 2 + 1; String str1 = s.substring(0, i);//取前一半的字符 String str2 = s.substring(j, s.length());//取后一半的字符 str2 = reverse(str2);//翻转后一半 return str1.equalsIgnoreCase(str2);//忽略大小写比较 } public String reverse(String s){ //翻转后一半 return new StringBuffer(s).reverse().toString(); }}
简化后
class Solution { public boolean isPalindrome(String s) { int start = 0, end = s.length() - 1; while(start < end){ if(!Character.isLetterOrDigit(s.charAt(start))){ //非字母或数字 start++; continue; } if(!Character.isLetterOrDigit(s.charAt(end))){ //非字母或数字 end--; continue; } if(Character.toLowerCase(s.charAt(start)) != Character.toLowerCase(s.charAt(end)))//转小写判断 return false; start++; end--; } return true; }}
转载地址:https://darkness.blog.csdn.net/article/details/104050652 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
感谢大佬
[***.8.128.20]2024年04月08日 04时27分23秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
网络编程基础
2019-04-30
函数的参数
2019-04-30
装 饰 器
2019-04-30
迭代器,生成器,函数递推与回溯,三元式,生成式
2019-04-30
苏州事业单位专技岗面试经历
2019-04-30
和式智能链溯源体系发布会直播回顾(内含溯源画册下载链接)
2019-04-30
基于Python的贪吃蛇游戏设计
2019-04-30
DRF 中的模型序列化到底该怎么用?
2019-04-30
2021 Top5 免费录屏软件
2019-04-30
2021 五款值得推荐的免费精品软件
2019-04-30
vue项目中按需引入vant组件
2019-04-30
vue项目配置sass
2019-04-30
vue移动端项目vant组件库之button
2019-04-30
vue移动端项目vant组件库之cell
2019-04-30
vue项目按需引入element-ui
2019-04-30
Javascript 之 console
2019-04-30
Javascript 之 var、let和const
2019-04-30
vs code 查看底层
2019-04-30
html 使用 Echarts
2019-04-30