最長(zhǎng)公共前綴

編寫(xiě)一個(gè)函數(shù)來(lái)查找字符串?dāng)?shù)組中的最長(zhǎng)公共前綴自娩。

如果不存在公共前綴,返回空字符串""王悍。

示例?1:

輸入: ["flower","flow","flight"]輸出:"fl"

示例?2:

輸入: ["dog","racecar","car"]輸出:""解釋:輸入不存在公共前綴岛心。

說(shuō)明:

所有輸入只包含小寫(xiě)字母a-z。


讀題:給了一個(gè)列表祭隔,由字符串組成偎捎,要求返回最長(zhǎng)公共前綴。

那就先找出最短的一個(gè)字符串序攘,比較前N項(xiàng)茴她,


感覺(jué)是一個(gè)一個(gè)樣例測(cè)試,定義方法程奠。改了兩個(gè)小時(shí)丈牢。

首先是列表為空,返回空字符串瞄沙,

然后是列表中有空字符串的己沛,一定是沒(méi)有公共前綴慌核,返回發(fā)字符串

接下來(lái)是去重后長(zhǎng)度唯一,那么原列表就是只有一個(gè)元素申尼,還有就是所有元素都相同垮卓,返回strs[0]就行

其余的要開(kāi)始我們的判斷,首先定義一個(gè)空列表师幕,遍歷strs粟按,計(jì)算長(zhǎng)度然后添加給列表

這時(shí)列表存儲(chǔ)的是和strs元素相同順序的長(zhǎng)度,其實(shí)用字典更直觀一些霹粥,每個(gè)人都有自己喜歡用的灭将,我就喜歡用列表,for循環(huán)之類(lèi)后控。

然后Min方法找出最小值庙曙,按照其索引找出strs中對(duì)應(yīng)的元素,這時(shí)我們就找到最短元素了浩淘。

開(kāi)始準(zhǔn)備比較捌朴,外層為遍歷最短元素,內(nèi)層為遍歷strs,我們比較的是最短元素的前i位和其他元素前i位是否不同张抄,用的是【:i】,所以i要從1開(kāi)始男旗,一直比較到最后一位,最后一位應(yīng)該是

len(strs[a.index(c)] 為什么要加一呢欣鳖?如a = '123456'? ?a[ : 6]? ? ?a[ : 1000]結(jié)果都是一樣的

但是如果a = '1'? ? 對(duì)于range就是(1,1)察皇,意義不明的寫(xiě)法,所以要加1

然后開(kāi)始比較泽台,如果最短元素的前i位在遍歷時(shí)遇到不同了什荣。那么就表明【:i-1】為最長(zhǎng)公共前綴,讓是如果i為1怀酷,那么就是第一就出現(xiàn)不同稻爬,就沒(méi)有公共前綴,

這里我用的方法是找不同蜕依,那么就還有一種可能桅锄,遍歷到最后一位還是沒(méi)有不同

這說(shuō)明說(shuō)明呢,說(shuō)明最短元素就是最長(zhǎng)公共前綴样眠,在外層循環(huán)定義一個(gè)num=0友瘤,每次對(duì)比一個(gè)元素就加一,一圈后歸零檐束,到最后一層時(shí)num == len(strs)表示strs中所有元素都對(duì)比完了辫秧,i == 最短元素長(zhǎng)度表示對(duì)比完整個(gè)最短元素,到這個(gè)時(shí)候return還沒(méi)用上被丧,最短元素就是在長(zhǎng)公共前綴了盟戏。

一步一個(gè)坎绪妹,太費(fèi)勁了,研究一下別人的

先是判斷存不存在strs柿究,然后排序邮旷,讓s1等于排序后第一位,s2等于排序后最后一位

這個(gè)排序可太妙了蝇摸,依照單詞順序排序婶肩,比較第一位后最后一位公共元素就行,


這個(gè)方法返回一個(gè)可遍歷對(duì)象探入,如

i為下標(biāo)狡孔,x為元素懂诗,對(duì)比s1和s2每一位同下標(biāo)元素蜂嗽,

如果不同,這里用一個(gè)十分取巧的方法殃恒,【:i】!!!!返回前i項(xiàng)植旧,而在比較時(shí)一直比較[ i ],并且

[ : 0]表示空字符串

如果全相同离唐,就返回s1病附。

相當(dāng)服氣,NB

再學(xué)習(xí)一個(gè)

這個(gè)關(guān)鍵就是zip函數(shù)亥鬓,卻且的說(shuō)是zip(*)

zip這個(gè)解釋太長(zhǎng)就不粘貼了完沪,隨便說(shuō)一下,zipj就是壓縮的意思嵌戈,壓縮的內(nèi)容是多個(gè)迭代對(duì)象覆积,返回一個(gè)對(duì)象,節(jié)約內(nèi)存熟呛】淼担可以轉(zhuǎn)化為list,而zip(*)就是解壓庵朝÷鹪看一下示例就知道了

很容易理解,不講了

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末九府,一起剝皮案震驚了整個(gè)濱河市椎瘟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌侄旬,老刑警劉巖降传,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異勾怒,居然都是意外死亡婆排,警方通過(guò)查閱死者的電腦和手機(jī)声旺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)段只,“玉大人腮猖,你說(shuō)我怎么就攤上這事≡拚恚” “怎么了澈缺?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)炕婶。 經(jīng)常有香客問(wèn)我姐赡,道長(zhǎng),這世上最難降的妖魔是什么柠掂? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任项滑,我火速辦了婚禮,結(jié)果婚禮上涯贞,老公的妹妹穿的比我還像新娘枪狂。我一直安慰自己,他們只是感情好宋渔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布州疾。 她就那樣靜靜地躺著,像睡著了一般皇拣。 火紅的嫁衣襯著肌膚如雪严蓖。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,488評(píng)論 1 302
  • 那天氧急,我揣著相機(jī)與錄音颗胡,去河邊找鬼。 笑死态蒂,一個(gè)胖子當(dāng)著我的面吹牛杭措,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播钾恢,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼手素,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了瘩蚪?” 一聲冷哼從身側(cè)響起泉懦,我...
    開(kāi)封第一講書(shū)人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎疹瘦,沒(méi)想到半個(gè)月后崩哩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年邓嘹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了酣栈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡汹押,死狀恐怖矿筝,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情棚贾,我是刑警寧澤窖维,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站妙痹,受9級(jí)特大地震影響铸史,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜怯伊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一琳轿、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧震贵,春花似錦利赋、人聲如沸水评。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)中燥。三九已至寇甸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疗涉,已是汗流浹背拿霉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留咱扣,地道東北人绽淘。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像闹伪,于是被迫代替她去往敵國(guó)和親沪铭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

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

  • 參考:https://leetcode-cn.com/problems/two-sum/solution/zui-...
    iamlyly閱讀 717評(píng)論 0 0
  • 一偏瓤、題目原型: 編寫(xiě)一個(gè)函數(shù)來(lái)查找字符串?dāng)?shù)組中的最長(zhǎng)公共前綴杀怠。如果不存在公共前綴,返回空字符串 ""厅克。 二赔退、題目意...
    花果山松鼠閱讀 353評(píng)論 0 0
  • 14. 最長(zhǎng)公共前綴編寫(xiě)一個(gè)函數(shù)來(lái)查找字符串?dāng)?shù)組中的最長(zhǎng)公共前綴。如果不存在公共前綴,返回空字符串 ""硕旗。例1:輸...
    杏仁小核桃閱讀 199評(píng)論 0 1
  • 14.最長(zhǎng)公共前綴 編寫(xiě)一個(gè)函數(shù)來(lái)查找字符串?dāng)?shù)組中的最長(zhǎng)公共前綴窗骑。 如果不存在公共前綴,返回空字符串""漆枚。 示例1...
    不愛(ài)去冒險(xiǎn)的少年y閱讀 269評(píng)論 0 0
  • 世界上有兩個(gè)人死的很慘慧域。一是意大利的哥白尼。二是意大利的喬爾丹·布魯諾浪读。這兩個(gè)人都是就宇宙認(rèn)知的差異昔榴,因?yàn)楦诮探M...
    Yoga月閱讀 181評(píng)論 0 0