leetcode(valid-palindrome)判断字符串是否是对称
2016-07-06 20:22
211 查看
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
For example,
“A man, a plan, a canal: Panama”is a palindrome.
“race a car”is not a palindrome.
Note:
Have you consider that the string might be empty? This is a good question to ask during an interview.
For the purpose of this problem, we define empty string as valid palindrome.
解题方法:使用的是二分查找里面的快排算法。但是这里之判断大小写字母和所有的数字。
For example,
“A man, a plan, a canal: Panama”is a palindrome.
“race a car”is not a palindrome.
Note:
Have you consider that the string might be empty? This is a good question to ask during an interview.
For the purpose of this problem, we define empty string as valid palindrome.
解题方法:使用的是二分查找里面的快排算法。但是这里之判断大小写字母和所有的数字。
public class Solution { public boolean isPalindrome(String s) { if(s==null||s.length()==0||s.length()==1) return true; int i=0,j=s.length()-1; char left,right; while(i<j){ left=s.charAt(i); right=s.charAt(j); while(i<j&&!((left>='a'&&left<='z')||(left>='A'&&left<='Z')||(left>='0'&&left<='9'))){ i++; left=s.charAt(i); } if(left>='a'&&left<='z') left=(char) ('A'-'a'+left); while(i<j&&!((right>='a'&&right<='z')||(right>='A'&&right<='Z')||(right>='0'&&right<='9'))){ j--; right=s.charAt(j); } if(right>='a'&&right<='z') right=(char) ('A'-'a'+right); if(left-right==0){ i++; j--; }else return false; } return true; } }
相关文章推荐
- 33.每日一个Linux命令----free
- 前端软实力
- IT战略规划咨询
- java线程面试题
- join控制线程的执行顺序
- 开机延时启动cmd命令(带关闭)
- CSS3实现“圣杯布局”--(固比固布局)
- BZOJ 2096
- 监听屏幕 android.intent.action.USER_PRESENT
- 数据库优化方法整理
- 高性能HTTP加速器Varnish安装与配置
- Spring AOP切面实现:定义切入点语法和切入点指示符
- LM3S5B91用JTAG调试下载程序时需要在KEIL模板中做以下设置
- 横向跟随图片文字特效
- win7休眠的开启与关闭方法
- SVN简介
- Andriod: 在xml布局中使用自定义属性
- C++中虚函数的作用
- springMVC学习
- GCC的编译过程