码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode] Valid Palindrome

时间:2016-08-17 13:59:47      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:

题目链接:https://oj.leetcode.com/problems/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.

 

Subscribe to see which companies asked this question.

 

针对本题可能存在的疑惑

1)空字符串是否为回文?

这里认为空字符串为回文

 

解题思路:

两个指针 i, j 从字符串两端向中心移动,比较指针指向的字符(数字)

 1     public boolean isPalindrome(String s){
 2         int i = 0;
 3         int j = s.length() - 1;
 4         while(i < j){
 5             while(i < j && !Character.isLetterOrDigit(s.charAt(i)))
 6                 i++;
 7             while(i < j && !Character.isLetterOrDigit(s.charAt(j)))
 8                 j--;
 9             if(Character.toLowerCase(s.charAt(i)) != Character.toLowerCase(s.charAt(j))) {
10                 return false;
11             }
12             i++;
13             j--;
14         }
15         return true;
16     }

时间复杂度:O(n),空间复杂度:O(1)

[LeetCode] Valid Palindrome

标签:

原文地址:http://www.cnblogs.com/momo-fun/p/5779609.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!