LintCode - 有效回文串(普通)

版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。

難度:容易
要求:

給定一個(gè)字符串,判斷其是否為一個(gè)回文串。只包含字母和數(shù)字,忽略大小寫。

注意事項(xiàng)
你是否考慮過,字符串有可能是空字符串?這是面試過程中,面試官常常會(huì)問的問題。
在這個(gè)題目中,我們將空字符串判定為有效回文。

樣例

"A man, a plan, a canal: Panama" 是一個(gè)回文。"race a car" 不是一個(gè)回文。

思路

    /**
     * @param s A string
     * @return Whether the string is a valid palindrome
     */
    public boolean isPalindrome(String s) {
        if (s == null || s.length() == 0) {
            return true;
        }
        s = s.toLowerCase();
        int left = 0;
        int right = s.length() - 1;
        while(left < right){
            while(left < s.length() && !isValid(s.charAt(left))){// nead to check range of a/b
                left++;
            }
            if(left == s.length()){// for emtpy string “.,,,”
                return true;
            }
            while(right >= 0 && !isValid(s.charAt(right))){
                right--;
            }
            if(Character.toLowerCase(s.charAt(left)) == Character.toLowerCase(s.charAt(right))){
                right--;
                left++;
            }else{
                break;
            }
        }
        return right <= left;
    }
    
    /**
     * 是否為有效
     */
    private boolean isValid(char c){
        return Character.isLetter(c) || Character.isDigit(c);
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

  • 給定一個(gè)字符串,判斷其是否為一個(gè)回文串。只包含字母和數(shù)字,忽略大小寫。注意事項(xiàng)你是否考慮過,字符串有可能是空字符串...
    DayDayUpppppp閱讀 346評(píng)論 0 1
  • 題目 給定一個(gè)字符串,判斷其是否為一個(gè)回文串。只包含字母和數(shù)字,忽略大小寫。** 注意事項(xiàng)**你是否考慮過,字符串...
    六尺帳篷閱讀 571評(píng)論 0 1
  • 描述 給定一個(gè)字符串,判斷其是否為一個(gè)回文串。只包含字母和數(shù)字,忽略大小寫。 注意事項(xiàng) 你是否考慮過,字符串有可能...
    6默默Welsh閱讀 278評(píng)論 0 0
  • 春天的麥地很是養(yǎng)眼。王小軍四仰八叉地躺在麥地里看著天空。天很藍(lán),陽光暖融融的,有幾朵白云。春天來了,王小軍想著,順...
    原來你也在濟(jì)南閱讀 1,096評(píng)論 0 2
  • 深圳,陰天。今天發(fā)生了很多事情,比如犯糊涂的事情就做了兩件。一個(gè)是上午買湯圓餃子,量買少了,接著晚上又出去買了一趟...
    Echo可可閱讀 295評(píng)論 0 0

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