OJ lintcode 有效回文串

給定一個(gè)字符串,判斷其是否為一個(gè)回文串。只包含字母和數(shù)字,忽略大小寫(xiě)。
注意事項(xiàng)
你是否考慮過(guò),字符串有可能是空字符串?這是面試過(guò)程中,面試官常常會(huì)問(wèn)的問(wèn)題。
在這個(gè)題目中,我們將空字符串判定為有效回文。
您在真實(shí)的面試中是否遇到過(guò)這個(gè)題?
Yes
樣例
"A man, a plan, a canal: Panama" 是一個(gè)回文。
"race a car" 不是一個(gè)回文。

class Solution {
public:
    /**
     * @param s A string
     * @return Whether the string is a valid palindrome
     */
    bool isvalid_char(char c){
        if(c>='0'&&c<='9'){
            return true;
        }
        if(c>='A'&&c<='Z'){
            return true;
        }
        if(c>='a'&&c<='z'){
            return true;
        }
        return false;
    }

    bool isPalindrome(string& s) {
        // Write your code here
        if(s[0]==' '){
            return true;
        }
        int len=s.length();
        for(int i=0,j=s.length()-1;i<=j;i++,j--){
            while( isvalid_char(s[i])==0){
                //若不是有效的字符
                //那么往后移動(dòng)
                i++;
                if(i>=s.length()){
                    return true;
                    //這段代碼是后來(lái)加的,因?yàn)闇y(cè)試的時(shí)候,會(huì)給一個(gè)【,.】,
                    //這樣的也算是回文串,所以就加上了這一行代碼
                }
            }

            while(isvalid_char(s[j])==0||j>=s.length()){
                //
                j--;
                if(j>=s.length()){
                    return true;
                    //這段代碼是后來(lái)加的,因?yàn)闇y(cè)試的時(shí)候,會(huì)給一個(gè)【,.】,
                    //這樣的也算是回文串,所以就加上了這一行代碼
                }
            }
            //都轉(zhuǎn)化位小寫(xiě)的字符來(lái)比較
            char beg=s[i];
            char end=s[j];
        
            if('A'<=beg&&beg<='Z'){
                beg=beg+32;
            }

            if('A'<=end&&end<='Z'){
                end=end+32;
            }

            //兩者都取到了有效的字符
            if(beg!=end){
                //如果不相等 返回faluse ,不是回文串
                return false;
            }
        }
        return true;
    }
};

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 題目 給定一個(gè)字符串,判斷其是否為一個(gè)回文串。只包含字母和數(shù)字,忽略大小寫(xiě)。** 注意事項(xiàng)**你是否考慮過(guò),字符串...
    六尺帳篷閱讀 539評(píng)論 0 1
  • 描述 給定一個(gè)字符串,判斷其是否為一個(gè)回文串。只包含字母和數(shù)字,忽略大小寫(xiě)。 注意事項(xiàng) 你是否考慮過(guò),字符串有可能...
    6默默Welsh閱讀 215評(píng)論 0 0
  • 問(wèn)題: Given a string, determine if it is a palindrome, cons...
    Cloudox_閱讀 233評(píng)論 0 0
  • 小時(shí)候,想起來(lái)總能讓人笑起來(lái)。 偷偷抽煙 小的時(shí)候,我做過(guò)很多傻傻的事情。比如有一次我跟老哥趁著其他人不在,偷偷摸...
    人間四月天Sun閱讀 621評(píng)論 1 1
  • 終究是 愛(ài)而不得…
    千雨小花閱讀 138評(píng)論 0 0