您的位置:首页 > 其它

125. Valid Palindrome

2016-05-05 09:50 253 查看

Problem

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.*

Solution

class Solution {
public:
bool isPalindrome(string s) {
if(s.empty())
return true;
int i = 0;
int j = s.size()-1;
while(i<j)
{
//skip non alphanumeric characters
while(i < j && !isalnum(s[i]))
++i;
//skip non alphanumeric characters
while(i < j && !isalnum(s[j]))
--j;
//convert to lower case and compare the characters
//if not the same,return false
if(tolower(s[i]) != tolower(s[j]))
return false;
//else check next pair of characters
else
{
++i;
--j;
}
}

return true;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: