您的位置:首页 > 其它

leetcode:Valid Palindrome 合法回文

2014-11-17 12:53 239 查看
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.
这题的意思就是判断一串字符串是否是回文,只考虑字母数字的情况。
alphanumeric 是字母数字的意思,我一开始以为是字母,看我写的那个判断函数名就知道了

,结果可想而知,深深的感到英语这厮对我充满了恶意,

class Solution {
public:
bool isPalindrome(string s) {

int tail = s.length() -1 ;

int head = 0;

while (head < tail)
{
while (!isAlpha(s[tail]) && tail>head)
--tail;
while (!isAlpha(s[head]) && head<tail)
++head;

if ( tolower(s[head]) != tolower(s[tail]))
return false;

++head;
--tail;
}
return true;
}
private:
bool isAlpha( char c)
{
if(('A'<=c && c<='Z')||('a'<=c && c<='z')|| ('0'<=c && c<='9'))
return true;
return false;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: