Leetcode 驗證回文字串。

2021-09-02 02:03:51 字數 1341 閱讀 5861

給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫

說明:本題中,我們將空字串定義為有效的回文串;

1.先將字串變為小寫,因為本題忽略了字母的大小寫。

2.利用字元的ascii值進行驗證

3.採用雙指標的辦法,乙個指向頭,乙個指向尾,同時向中間靠攏,過程中兩指標指向目標不相等則退出返回false,直到兩個指標匯合,則驗證成功,即是回文串。

解法一(未優化)

/**

* * 給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫

* 說明:本題中,我們將空字串定義為有效的回文串;

* 示例1.

* 輸入: "a man,a plan,a canal:panama"

* 輸出:true

* 示例2.

* 輸入:"race a car"

* 輸出:false

* * @author mac

* */

public

class

solution

while

((int)strarray[j]

<

48||

((int)strarray[j]

>

57&&

(int)strarray[j]

<97)

||(int)strarray[j]

>

122)

if(strarray[i]

!= strarray[j]

)else

}return

true;}

public

static

void

main

(string[

] args)

}

這裡會有乙個問題,如果字串是空的,或者超級長,就會產生錯誤,所以我們可以進行優化

解法二

class

solutionif(

!((edchar >=

'a'&& edchar <=

'z')

||(edchar >=

'0'&& edchar <=

'9')))

if(bgchar != edchar)

start++

; end--;}

return

true;}

public

static

void

main

(string[

] args)

}

注意這裡的判斷不能用while。

LeetCode 驗證回文字串

給定乙個非空字串s,最多刪除乙個字元。判斷是否能成為回文字串。示例 1 輸入 aba 輸出 true 示例 2 輸入 abca 輸出 true 解釋 你可以刪除c字元。注意 字串只包含從 a z 的小寫字母。字串的最大長度是50000。思路 雙指標 當不相等的時候 左指標跳過乙個或者右指標跳過乙個 ...

驗證回文字串 leetcode

給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true 示例 2 輸入 race a car 輸出 false c 版本 class solut...

leetcode 驗證回文字串 python3

方案一 一般方法 分奇數偶數來說,方法比較一般 import string 給join傳遞入參時計算符合條件的字元,去掉標點符號 b join c for c in s if c not in string.punctuation 把空格去掉 b b.replace 小寫b b.lower l le...