125. Valid Palindrome

来源:互联网 发布:店铺怎么加入淘宝客 编辑:程序博客网 时间:2024/06/18 00:04

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.


代码提交的时候总是出错!!!,逻辑明明是一模一样。。。

bool isPalindrome(string s) {int start=0, end=s.length()-1;while(start<end) {if (!isalnum(s[start])) start++;else if (!isalnum(s[end])) end--;else {if (tolower(s[start++])!=tolower(s[end--])) return false;}}return true;}
大佬的代码,上面。

我的代码,下面。

class Solution {public:    bool isPalindrome(string s) {        if(s.size()==0) return true;        int pend=s.size()-1,pbeg=0;        while(pend>pbeg)        {            if(s[pbeg]<'a'||s[pbeg]>'Z') {pbeg++;continue;}            if(s[pend]<'a'||s[pend]>'Z') {pend--;continue;}            if(s[pbeg]>'z') s[pbeg]=tolower(s[pbeg]);            if(s[pend]>'z') s[pend]=tolower(s[pend]);            if(s[pend]!=s[pbeg]) return false;            else{                pbeg++;                pend--;            }        }        return true;    }};



原创粉丝点击