LeetCode筆記 125驗證回文串

2021-08-25 16:52:39 字數 1017 閱讀 9188

題目:

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

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

示例 1:

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

輸出: true

示例 2:

輸入: "race a car"

輸出: false

思路:回文串從前往後和從後往前的字串是相同的。在本題中空字串也定義為回文字串。設定兩個指標left,right,先找到是字母或數字的字元,這一步主要是排除字串中的空格;然後比較字元是否相等,這裡有挺多複雜的情況,比如說兩者是同一字母的大小寫(題目中說忽略字母大小寫,兩者相差32),還可能將數字和字母錯認成大小寫(比如字母p,80和數字048),需要特殊考慮;相等就改變索引繼續查詢,不相等就返回false.以下是根據網上大神整理的**。

**:class solution

int left = 0;

int right = s.length() - 1;

int delta = 'a' - 'a';

char l;

char r;

while (left < right)

while (right >= 0 && !isalphanumericcharacters(s.charat(right)))

if (left < right) else }}

return true ;

}//判斷字元c是否為數字或字母

private boolean isalphanumericcharacters(char c)

//針對一種特殊的用例,數字和字母之間的差為大小寫之間的差

private boolean isaa(char a,char b)

}

LeetCode刷題筆記 125 驗證回文串

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

leetcode125 驗證回文串

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

LeetCode125驗證回文數

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