【力扣】125. 验证回文串
发布日期:2021-06-29 19:44:08
浏览次数:3
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月13日 15时20分55秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
数据结构学习_树(1)
2019-04-30
数据结构学习_树(2)
2019-04-30
数据结构学习_树(3)
2019-04-30
数据结构学习_树(4)
2019-04-30
数组与矩阵(1)_矩阵相乘
2019-04-30
数据结构学习_图(1)深度优先搜索、广度优先搜索和最小生成树
2019-04-30
数据结构学习_图(1)拓扑排序
2019-04-30
第17章 custom views
2019-04-30
“老外学中文“-开发进度
2019-04-30
我的mac pro,今后我们要一起加油啦!
2019-04-30
Huffman编码
2019-04-30
多台上网设备出现上网卡问题
2019-04-30
独立游戏市场营销策略:社交营销篇
2019-04-30
在cocos2d里面如何拖拽精灵
2019-04-30
UI界面设计标准,包括iPad mini和iPhone5。
2019-04-30
如何确定你的新点子是否靠谱
2019-04-30
App Store邮箱列表
2019-04-30
iOS 和 Android 的后台推送工作原理各是如何?有什么区别?
2019-04-30
关于UIWebView的一些事
2019-04-30
iOS程序运行主要步骤
2019-04-30