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

[LeetCode] Valid Palindrome

时间:2014-11-09 15:07:01      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   ar   os   sp   for   div   

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.

 

Easy题不easy啊,我提交了好几次都没过,各种case都没有考虑清楚就开始做了。两个pointers这个我倒是一上来就确定了。

  1.没有考虑清楚边界,其实两个指针往分两头往中间扫,当他们彼此超越的时候就应该结束循环。因为两个指针相互交错的时候如果还没有检测到不匹配的字符那肯定是回文串无误。

  2.没读懂题目,不造alphanumberic是”数字和字母组成“的意思。。。

bool isAlphanumeric(char c) {
    return (c >= A && c <= Z) || (c >= a && c <= z) || (c >= 0 && c <= 9);
}

bool isPalindrome(string s) {
    int i = 0 ,j = (int)s.length()-1;
    while (i <= j) {
        if (!isAlphanumeric(s[i])) {
            i++;
            continue;
        }
        if (!isAlphanumeric(s[j])) {
            j--;
            continue;
        }
        if (tolower(s[i]) != tolower(s[j])) {
            return false;
        }
        i++;
        j--;
    }
    return true;
}

 

[LeetCode] Valid Palindrome

标签:style   blog   io   color   ar   os   sp   for   div   

原文地址:http://www.cnblogs.com/agentgamer/p/4085045.html

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