前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode刷题---验证回文串

LeetCode刷题---验证回文串

作者头像
葆宁
发布2019-04-18 16:03:54
4460
发布2019-04-18 16:03:54
举报
文章被收录于专栏:FREE SOLO
在这里插入图片描述
在这里插入图片描述

所谓回文,就是一个正读和反读都一样的字符串。

先假设是验证一个单词 level 是否是回文字符串,通过概念涉及到 正 与 反 ,那么很容易想到使用双指针,从字符的开头和结尾处开始遍历整个字符串,相同则继续向前寻找,不同则直接返回 false。

而这里与单独验证一个单词是否是回文字符串有所区别的是加入了 空格 与 非字母数字的字符,但实际上的做法一样的:

一开始先建立两个指针,left 和 right , 让它们分别从字符的开头和结尾处开始遍历整个字符串。

如果遇到非字母数字的字符就跳过,继续往下找,直到找到下一个字母数字或者结束遍历,如果遇到大写字母,就将其转为小写。

当左右指针都找到字母数字时,可以进行比较的时候,比较这两个字符,如果相等,则两个指针向它们的前进方向挪动,然后继续比较下面两个分别找到的字母数字,若不相等,直接返回 false。

代码语言:javascript
复制
package com.wuyu.java;
 class solution {
	 public boolean isPalinadrome(String s){
		 if(s.length()==0)
			 return true;
		 int l = 0,r=s.length()-1;
		 while(l<r){
			 if(!Character.isLetterOrDigit(s.charAt(1))){
				 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;
	 }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年04月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 所谓回文,就是一个正读和反读都一样的字符串。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档