給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。
**說明:**本題中,我們將空字串定義為有效的回文串。
示例 1:
輸入: "a man, a plan, a canal: panama"
輸出: true
示例 2:
輸入: "race a car"
輸出: false
每次在leetcode
都能遇到神奇的解法
【轉換字母大小寫】
ch &
0b11011111 //ch & 0xdf ---全部轉換為大寫
ch |
0b00100000 //ch & 0x20 ---全部轉換為小寫
這裡自己想了一下,真是巧妙,因為小寫和大寫字母剛好相差32,而32就是二進位制下的第5位,與上第5位的0相當於減32,或上第5位的1則相當於加上32,妙,妙就完事了。
(65–『a』 97–『a』)
【關於這一題回文串的想法】
這裡最直接的想法就是從最左到最右進行匹配,向中間縮排,匹配成功則是回文串,反之則不是。(目前還沒想到什麼比較快的思路)
class solution
return true;}}
;
但是這還是太慢了,後面再改進吧… 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...
leetcode 125 驗證回文串
給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true示例 2 輸入 race a car 輸出 false注意讀題,題目中說了只考慮字母和數字...