125 Valid Palindrome

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

Example:

Input: "A man, a plan, a canal: Panama"
Output: true

Input: "race a car"
Output: false

Note:

For the purpose of this problem, we define empty string as valid palindrome.

解釋下題目:

給定一個字符串憔四,只看其中的字母和數(shù)字更卒,字母不區(qū)分大小寫,判斷是不是回文字符串

1. 老老實實做唄

實際耗時:8ms

public boolean isPalindrome(String s) {
        char[] a = new char[s.length()];
        int len = s.length();
        if (0 == len) {
            return true;
        }
        int index = 0;
        int charLen = 0;
        //第一步慌烧,先去除除了字母數(shù)字以外的字符鲫忍,并把所有的大寫轉成小寫
        while (index < len) {
            if (isLetter(s.charAt(index)) || isNumber(s.charAt(index))) {
                a[charLen++] = Character.toLowerCase(s.charAt(index));
            }
            index++;
        }
        //第二步膏燕,回文判斷
        for (int i = 0; i < charLen / 2; i++) {
            if (a[i] != a[charLen - i - 1]) {
                return false;
            }
        }
        return true;
    }

    /**
     * 判斷是否是字母
     *
     * @param a
     * @return true = 是字母
     */
    public static boolean isLetter(char a) {
        if (0 <= a - 'a' && 26 > a - 'a') {
            return true;
        }
        if (0 <= a - 'A' && 26 > a - 'A') {
            return true;
        }
        return false;
    }

    /**
     * 判斷所給字符是否是0-9這十個數(shù)字
     *
     * @param num 所給字符
     * @return true = 是數(shù)字 false = 不是數(shù)字
     */
    public static boolean isNumber(char num) {
        if ((0 <= num - '0') && (10 > num - '0')) {
            return true;
        }
        return false;
    }
踩過的坑:"0P" 一開始我以為只保留字母......

??思路很簡單,剔除除了字母和數(shù)字以外的別的悟民,生成一個新的數(shù)組坝辫,然后用回文數(shù)的方法進行判斷即可。

時間復雜度O(n)
空間復雜度O(n)

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末射亏,一起剝皮案震驚了整個濱河市近忙,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌智润,老刑警劉巖银锻,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異做鹰,居然都是意外死亡击纬,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門钾麸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來更振,“玉大人炕桨,你說我怎么就攤上這事】贤螅” “怎么了献宫?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長实撒。 經常有香客問我姊途,道長,這世上最難降的妖魔是什么知态? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任捷兰,我火速辦了婚禮,結果婚禮上负敏,老公的妹妹穿的比我還像新娘贡茅。我一直安慰自己,他們只是感情好其做,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布顶考。 她就那樣靜靜地躺著,像睡著了一般妖泄。 火紅的嫁衣襯著肌膚如雪驹沿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天蹈胡,我揣著相機與錄音甚负,去河邊找鬼。 笑死审残,一個胖子當著我的面吹牛梭域,可吹牛的內容都是我干的。 我是一名探鬼主播搅轿,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼病涨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了璧坟?” 一聲冷哼從身側響起既穆,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎雀鹃,沒想到半個月后幻工,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡黎茎,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年囊颅,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡踢代,死狀恐怖盲憎,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情胳挎,我是刑警寧澤饼疙,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站慕爬,受9級特大地震影響窑眯,放射性物質發(fā)生泄漏。R本人自食惡果不足惜医窿,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一磅甩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧留搔,春花似錦更胖、人聲如沸铛铁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽饵逐。三九已至括眠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間倍权,已是汗流浹背掷豺。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留薄声,地道東北人当船。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像默辨,于是被迫代替她去往敵國和親德频。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內容