Java [Leetcode 125]Valid Palindrome
2016-02-18 22:45
645 查看
题目描述:
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.
解题思路:
设置两个指针,一个在字符串头部,一个在字符串尾部,分别向中间移动,遇到非字母或数字则继续向中间移动,如两个都为字母或者数字,那么则比较两者是否相同。
代码如下:
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.
解题思路:
设置两个指针,一个在字符串头部,一个在字符串尾部,分别向中间移动,遇到非字母或数字则继续向中间移动,如两个都为字母或者数字,那么则比较两者是否相同。
代码如下:
public class Solution { public boolean isPalindrome(String s) { int i = 0, j = s.length() - 1; char head, tail; if(j < 0) return true; while(i < j){ head = s.charAt(i); tail = s.charAt(j); if(!Character.isLetterOrDigit(head)){ i++; } if(!Character.isLetterOrDigit(tail)){ j--; } if(Character.isLetterOrDigit(head) && Character.isLetterOrDigit(tail)){ if(Character.toLowerCase(head) != Character.toLowerCase(tail)){ return false; } i++; j--; } } return true; } }
相关文章推荐
- Eclipse下 快速找到类对应的包
- java日期格式
- 六种常用的设计模式java实现(四)模板模式
- Eclipse包与类的显示和查找小技巧
- 对JAVA的初步相识
- Simple-Java—Collections(二)Java中如何把数组转换为ArrayList
- 【004】Mac下命令行terminal安装jdk
- LeetCode_1_TwoSum(Java Code)
- java学习之JDBC
- Java 入门 之 AWT 与 Swing 的比较
- Java中JSON操作
- Spring事务的来龙去脉
- spring hibernate4整合问题
- Java byte数据类型详解
- Servlet生命周期
- Eclipse导出JavaDoc中文乱码问题解决
- 01、数据类型初阶(Java的基本数据类型)
- 简单的java Socket 例子
- 解决java mail发送TXT附件被直接显示在正文中的问题
- JDK,JRE,JVM区别与联系