Leetcode 125. 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.

分析

判斷一個字符串是否是回文串,忽略其他字符和大小寫。先將小寫字母轉(zhuǎn)化為大寫字母,之后從首尾向中間依次判斷字符和數(shù)字,不相等的話直接返回false。

bool isalphanumeric(char s)
{
    if(s>='a'&&s<='z')return true;
    else if(s>='A'&&s<='Z')return true;
    else if(s>='0'&&s<='9')return true;
    else return false;
}
bool isPalindrome(char* s) {
    if(s[0]=='\0')return true;
    bool flag=true;
    int length=0;
    while(s[length]!='\0')
    {
        if(s[length]>='a'&&s[length]<='z')
            s[length]='A'+s[length]-'a';
        length++;
    }
    int i=0,j=length-1;
    while(i<j)
    {
        while(i<j&&isalphanumeric(s[i])==false)
            i++;
        while(i<j&&isalphanumeric(s[j])==false)
            j--;
        //printf("%c %c\n",s[i],s[j]);
        if(i==j||(i==j-1&&s[i]==s[j]))
            return true;
        else if(s[i]!=s[j])
            return false;
        else
        {
            i++;j--;
        }
    }
    return flag;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容