[leetcode125]驗(yàn)證回文串

題目:
如果在將所有大寫字符轉(zhuǎn)換為小寫字符宛裕、并移除所有非字母數(shù)字字符之后乘寒,短語正著讀和反著讀都一樣缆瓣。則可以認(rèn)為該短語是一個(gè) 回文串 畴蒲。

字母和數(shù)字都屬于字母數(shù)字字符诗鸭。

給你一個(gè)字符串 s染簇,如果它是 回文串 ,返回 true 强岸;否則锻弓,返回 false 。

示例 1:

輸入: s = "A man, a plan, a canal: Panama"
輸出:true
解釋:"amanaplanacanalpanama" 是回文串请唱。
示例 2:

輸入:s = "race a car"
輸出:false
解釋:"raceacar" 不是回文串弥咪。
示例 3:

輸入:s = " "
輸出:true
解釋:在移除非字母數(shù)字字符之后,s 是一個(gè)空字符串 "" 十绑。
由于空字符串正著反著讀都一樣聚至,所以是回文串。

提示:

1 <= s.length <= 2 * 105
s 僅由可打印的 ASCII 字符組成

參考答案1:

    def isPalindrome(self, s: str) -> bool:
        s=s.lower()
        l=[]
        for i in s:
            if i.isalnum():
                l.append(i)
        return l==l[::-1]

參考答案2:

    def isPalindrome(self, s: str) -> bool:
        temp = []
        for ss in s:
            if ss.isalpha():
                temp.append(ss.lower())
            elif ss.isdigit():
                temp.append(ss)
        return (res := ''.join(temp)) == res[::-1]

本人的漂亮爛代碼:

    def isPalindrome(self, s: str) -> bool:
        i = 0
        ss = ''
        while i < len(s):
            if 'a' <= s[i] <= 'z' or '0' <= s[i] <= '9':
                ss += s[i]
            elif 'A' <= s[i] <= 'Z':
                ss += s[i].lower()
            i += 1
        if len(ss) in [0, 1]:
            return True
        else:
            j = 0
            length = len(ss)
            while j < length//2:
                if ss[j] == ss[length-1-j]:
                    j += 1
                else:
                    return False
            return True

反思:
1本橙、字符串常用函數(shù):upper(), lower(), isupper(), islower(), isalpha(), isdigit(), isalnum(), count(), join()等
2扳躬、ss[i]==ss[-i-1]
3、字符串逆序:ss[::-1]

回顧一下 Python 中常用處理字符串的相關(guān)函數(shù):
string.capitalize() 把字符串的第一個(gè)字符大寫
string.count(str, beg=0, end=len(string)) 返回 str 在 string 里面出現(xiàn)的次數(shù)甚亭,如果 beg 或者 end 指定則返回指定范圍內(nèi) str 出現(xiàn)的次數(shù)
string.endswith(obj, beg=0, end=len(string)) 檢查字符串是否以 obj 結(jié)束贷币,如果beg 或者 end 指定則檢查指定的范圍內(nèi)是否以 obj 結(jié)束,如果是亏狰,返回 True,否則返回 False.
string.find(str, beg=0, end=len(string)) 檢測(cè) str 是否包含在 string 中役纹,如果 beg 和 end 指定范圍,則檢查是否包含在指定范圍內(nèi)暇唾,如果是返回開始的索引值促脉,否則返回-1
string.index(str, beg=0, end=len(string)) 跟find()方法一樣,只不過如果str不在 string中會(huì)報(bào)一個(gè)異常.
string.isalnum() 如果 string 至少有一個(gè)字符并且所有字符都是字母或數(shù)字則返回 True,否則返回 False
string.isalpha() 如果 string 至少有一個(gè)字符并且所有字符都是字母則返回 True,否則返回 False
string.isdecimal() 如果 string 只包含十進(jìn)制數(shù)字則返回 True 否則返回 False.
string.isdigit() 如果 string 只包含數(shù)字則返回 True 否則返回 False.
string.islower() 如果 string 中包含至少一個(gè)區(qū)分大小寫的字符策州,并且所有這些(區(qū)分大小寫的)字符都是小寫瘸味,則返回 True,否則返回 False
string.isnumeric() 如果 string 中只包含數(shù)字字符够挂,則返回 True旁仿,否則返回 False
string.isspace() 如果 string 中只包含空格,則返回 True孽糖,否則返回 False.
string.istitle() 如果 string 是標(biāo)題化的(見 title())則返回 True枯冈,否則返回 False
string.isupper() 如果 string 中包含至少一個(gè)區(qū)分大小寫的字符,并且所有這些(區(qū)分大小寫的)字符都是大寫办悟,則返回 True尘奏,否則返回 False
string.join(seq) 以 string 作為分隔符,將 seq 中所有的元素(的字符串表示)合并為一個(gè)新的字符串
string.lower() 轉(zhuǎn)換 string 中所有大寫字符為小寫.
string.lstrip() 截掉 string 左邊的空格
max(str) 返回字符串 str 中最大的字母誉尖。
min(str) 返回字符串 str 中最小的字母罪既。
string.replace(str1, str2, num=string.count(str1)) 把 string 中的 str1 替換成 str2,如果 num 指定,則替換不超過 num 次.
string.split(str="", num=string.count(str)) 以 str 為分隔符切片 string,如果 num 有指定值琢感,則僅分隔 num+ 個(gè)子字符串
string.startswith(obj, beg=0,end=len(string)) 檢查字符串是否是以 obj 開頭丢间,是則返回 True,否則返回 False驹针。如果beg 和 end 指定值烘挫,則在指定范圍內(nèi)檢查.
string.strip([obj]) 在 string 上執(zhí)行 lstrip()和 rstrip()
string.swapcase() 翻轉(zhuǎn) string 中的大小寫
string.title() 返回"標(biāo)題化"的 string,就是說所有單詞都是以大寫開始,其余字母均為小寫(見 istitle())
string.translate(str, del="") 根據(jù) str 給出的表(包含 256 個(gè)字符)轉(zhuǎn)換 string 的字符,要過濾掉的字符放到 del 參數(shù)中
string.upper() 轉(zhuǎn)換 string 中的小寫字母為大寫

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末柬甥,一起剝皮案震驚了整個(gè)濱河市饮六,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌苛蒲,老刑警劉巖卤橄,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異臂外,居然都是意外死亡窟扑,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門漏健,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嚎货,“玉大人,你說我怎么就攤上這事蔫浆≈呈簦” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵瓦盛,是天一觀的道長(zhǎng)洗显。 經(jīng)常有香客問我,道長(zhǎng)谭溉,這世上最難降的妖魔是什么墙懂? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任橡卤,我火速辦了婚禮扮念,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘碧库。我一直安慰自己柜与,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布嵌灰。 她就那樣靜靜地躺著弄匕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪沽瞭。 梳的紋絲不亂的頭發(fā)上迁匠,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼城丧。 笑死延曙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的亡哄。 我是一名探鬼主播枝缔,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蚊惯!你這毒婦竟也來了愿卸?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤截型,失蹤者是張志新(化名)和其女友劉穎趴荸,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宦焦,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赊舶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了赶诊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片笼平。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖舔痪,靈堂內(nèi)的尸體忽然破棺而出寓调,到底是詐尸還是另有隱情,我是刑警寧澤锄码,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布夺英,位于F島的核電站,受9級(jí)特大地震影響滋捶,放射性物質(zhì)發(fā)生泄漏痛悯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一重窟、第九天 我趴在偏房一處隱蔽的房頂上張望载萌。 院中可真熱鬧,春花似錦巡扇、人聲如沸扭仁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乖坠。三九已至,卻和暖如春刀闷,著一層夾襖步出監(jiān)牢的瞬間熊泵,已是汗流浹背仰迁。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留顽分,地道東北人轩勘。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像怯邪,于是被迫代替她去往敵國和親绊寻。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 125. 驗(yàn)證回文串 題目來源:力扣(LeetCode)https://leetcode-cn.com/probl...
    大夢(mèng)三千秋閱讀 403評(píng)論 0 2
  • 題目 如果在將所有大寫字符轉(zhuǎn)換為小寫字符悬秉、并移除所有非字母數(shù)字字符之后澄步,短語正著讀和反著讀都一樣。則可以認(rèn)為該短語...
    草莓桃子酪酪閱讀 106評(píng)論 0 0
  • 變量 在Python中和泌,可以直接聲明一個(gè)變量并對(duì)其賦值村缸, 變量名通常由字母、數(shù)字和下劃線構(gòu)成武氓,區(qū)分大小寫梯皿,甚至支持...
    percivals閱讀 275評(píng)論 0 0
  • 一、實(shí)驗(yàn)?zāi)康?字符串的3種表示 字符串的分割县恕、連接东羹、大小寫轉(zhuǎn)換、搜索等常用操作 二忠烛、知識(shí)要點(diǎn) 1.字符串的三種表示...
    小哲1998閱讀 193評(píng)論 0 1
  • Python 字符串 字符串是 Python 中最常用的數(shù)據(jù)類型属提。我們可以使用引號(hào)('或")來創(chuàng)建字符串。 創(chuàng)建字...
    huangstts閱讀 622評(píng)論 0 3