(java)Valid Palindrome
2016-01-08 10:23
405 查看
Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
For example,
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.
思路:设置两个游标,分别指向串头和串尾,循环比较就行了
代码如下(已通过leetcode)
public class Solution {
public boolean isPalindrome(String s) {
if(s.length()==1) return true;
char[] cs=s.toCharArray();
int i=0,j=cs.length-1;
boolean flag=true;
while(i<j) {
while(i<j&&!Character.isLetterOrDigit(cs[i])){
i++;
}
while(i<j&&!Character.isLetterOrDigit(cs[j])){
j--;
}
char pre=Character.toLowerCase(cs[i]);
char later=Character.toLowerCase(cs[j]);
if(pre==later){
i++;
j--;
} else {
flag=false;
break;
}
}
return flag;
}
}
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.
思路:设置两个游标,分别指向串头和串尾,循环比较就行了
代码如下(已通过leetcode)
public class Solution {
public boolean isPalindrome(String s) {
if(s.length()==1) return true;
char[] cs=s.toCharArray();
int i=0,j=cs.length-1;
boolean flag=true;
while(i<j) {
while(i<j&&!Character.isLetterOrDigit(cs[i])){
i++;
}
while(i<j&&!Character.isLetterOrDigit(cs[j])){
j--;
}
char pre=Character.toLowerCase(cs[i]);
char later=Character.toLowerCase(cs[j]);
if(pre==later){
i++;
j--;
} else {
flag=false;
break;
}
}
return flag;
}
}
相关文章推荐
- javaweb学习总结(一):Servlet开发(一)
- 对JavaEE中session的理解
- Java-回调
- 初步了解 Java类加载子系统
- 使用Java抓取网页中所有的链接
- Spring包详解
- Java EE V7.0学习笔记-JBoss Tools 4.3.0.Final安装失败
- java split()
- Spring Data Jpa 自定义属性查询规则
- Eclipse下编写java程序突然不会自动生成R.java文件和包的解决办法
- Java线程大总结
- Spring事务隔离级别介绍
- Java 多线程同时执行
- Java 常量池了解
- java引用知识
- 把Java程序打包成jar文件包并执行
- java读写txt文件
- java读取TXT文件的方法
- Java线上应用故障排查之一:高CPU占用
- java中的匿名内部类总结