題目:
給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。
說明:本題中,我們將空字串定義為有效的回文串。
示例 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...