字符串

1.最后一個(gè)單詞長(zhǎng)度


原題:

Java:

C語言:

2. 同分異構(gòu)體

我們都知道化學(xué)中有同分異構(gòu)體這么一概念

同化學(xué)中分子一樣茄靠,英語也有同分異構(gòu)體

了解同分異構(gòu)體的概念之后加叁,來看看了leetcode242題

總體思想:

  • 想辦法把s與t寫成形如a2b0c4…z1的分子式形式
  • 判斷2個(gè)分子式是否相同
    具體思路:
  • 建立2個(gè)長(zhǎng)度為26的數(shù)組,分別代表s與t的分子式
  • 分別遍歷s與t钱豁,填充相應(yīng)的分子式
    如果2個(gè)分子式局扶,每個(gè)字母出現(xiàn)的次數(shù)都相同,就返回true怪蔑,否則返回false

3 翻轉(zhuǎn)單詞順序

問題描述

分析:聯(lián)想到之前的旋轉(zhuǎn)數(shù)組,可以分別旋轉(zhuǎn)每一個(gè)單詞然后再旋轉(zhuǎn)整個(gè)字符串丧荐。
實(shí)現(xiàn)代碼

進(jìn)階:leetcode151題


注意:英文句子開始可能有N個(gè)空格缆瓣,單詞之間可能有N個(gè)空格,句子尾部可能有N個(gè)空格虹统;


所以解決這題的重點(diǎn)就是:去除掉句子首位的空格弓坞,和去除單詞之間數(shù)量大于1 的空格隧甚;
思路:

  • 對(duì)于頭尾空格,可以定義頭尾指針不斷地向中間收縮并判斷:start++,end--;可以用兩個(gè)while循環(huán)來實(shí)現(xiàn)昼丑,當(dāng)退出循環(huán)時(shí)start和end之間就是沒有首尾空格的句子呻逆。(代碼中j相當(dāng)于start,len-1相當(dāng)于end)
  • 接下來去除單詞中間的空格菩帝,這里可以定義一個(gè)flag來標(biāo)記連續(xù)空格的數(shù)量,當(dāng)遇到非空格(字母)的時(shí)候flag清零茬腿。每次遇見空格的時(shí)候進(jìn)行判斷:
    如果flag=0呼奢,說明之前沒有錄入空格,可以錄入當(dāng)前空格切平。如果flag大于零則跳過當(dāng)前空格握础。
  • 最后在字符數(shù)組最后補(bǔ)個(gè)0表示字符串結(jié)束。

實(shí)現(xiàn)代碼:


4 leetcode 38 Count and Say

思路:
(當(dāng)n=10的迭代結(jié)果)


統(tǒng)計(jì)每個(gè)數(shù)字出現(xiàn)的次數(shù)悴品,并把本次得到的結(jié)果字符串作為下一次的當(dāng)前字符串禀综。
實(shí)現(xiàn)代碼:


5模式匹配

模式匹配的概念


了解概念后來看下leetcode28題(easy)


問題描述

leetCode 28:Implement strStr()
返回needle在haystack中的第一個(gè)出現(xiàn)位置
如果沒找到,返回-1苔严。
不允許直接使用indexOf方法定枷!

BF算法的思路

Java String.index方法也是暴力算法



判斷i指針開始到(i+字串長(zhǎng)度的位置)的字符串是否與字串相等,如果相等返回i届氢,否則i++重新判斷欠窒。
實(shí)現(xiàn)代碼:
空間O(1),時(shí)間O(m*n)


kmp算法
從頭到尾徹底理解 KMP

示例代碼:

kmp算法的重點(diǎn)在于next數(shù)組的創(chuàng)建退子, next[j]代表當(dāng)匹配不成功的時(shí)候模式串當(dāng)前的指針應(yīng)該移動(dòng)到的位置j=next[j]岖妄。

同理next[k]也可以理解為當(dāng)前綴與模式串匹配不成功時(shí)當(dāng)前k應(yīng)該移動(dòng)的位置,next數(shù)組的創(chuàng)建相當(dāng)于模式串的前綴(當(dāng)做字串)與模式串(當(dāng)做父串)從尾開始的敲黑板<畔椤<雠啊!)一個(gè)匹配過程:

如圖所示:可以當(dāng)做模式串ABCDABEABCDABC
中的前綴串ABCDABE進(jìn)行匹配:此時(shí)j=13,k=6丸凭,匹配不成功福扬;此時(shí)應(yīng)該怎樣?直接跳轉(zhuǎn)到k=0從頭開始匹配嗎贮乳?
仔細(xì)觀察前綴字串:ABCDABE,因?yàn)閖=C與K=6已經(jīng)不匹配了忧换,不可能匹配到K>=6的字串。所以可以嘗試找比k小的字串向拆。

之前說了next數(shù)組的定義就是當(dāng)字串匹配到n的時(shí)候發(fā)現(xiàn)不匹配亚茬,字串指針n應(yīng)該向左挪到的位置(不是向左移動(dòng)的距離,是直接n=next[n]),這個(gè)數(shù)組對(duì)于模式串匹配文本串適用浓恳,也就是對(duì)j適用,就是j=next[j]刹缝。同時(shí)對(duì)前綴字串與模式串匹配也適用碗暗,也就是k=next[k];

創(chuàng)建整個(gè)next數(shù)組時(shí),前綴字串與模式串的比對(duì)過程大概如圖:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末梢夯,一起剝皮案震驚了整個(gè)濱河市言疗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌颂砸,老刑警劉巖噪奄,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異人乓,居然都是意外死亡勤篮,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門色罚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碰缔,“玉大人,你說我怎么就攤上這事戳护〗鹇眨” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵腌且,是天一觀的道長(zhǎng)梗肝。 經(jīng)常有香客問我,道長(zhǎng)切蟋,這世上最難降的妖魔是什么统捶? 我笑而不...
    開封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮柄粹,結(jié)果婚禮上喘鸟,老公的妹妹穿的比我還像新娘。我一直安慰自己驻右,他們只是感情好什黑,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著堪夭,像睡著了一般愕把。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上森爽,一...
    開封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天恨豁,我揣著相機(jī)與錄音,去河邊找鬼爬迟。 笑死橘蜜,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播计福,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼跌捆,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了象颖?” 一聲冷哼從身側(cè)響起佩厚,我...
    開封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎说订,沒想到半個(gè)月后抄瓦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡陶冷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年闺鲸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片埃叭。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖悉罕,靈堂內(nèi)的尸體忽然破棺而出赤屋,到底是詐尸還是另有隱情,我是刑警寧澤壁袄,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布类早,位于F島的核電站,受9級(jí)特大地震影響嗜逻,放射性物質(zhì)發(fā)生泄漏涩僻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一栈顷、第九天 我趴在偏房一處隱蔽的房頂上張望逆日。 院中可真熱鬧,春花似錦萄凤、人聲如沸室抽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)坪圾。三九已至,卻和暖如春惑朦,著一層夾襖步出監(jiān)牢的瞬間兽泄,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工漾月, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留病梢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓栅屏,卻偏偏與公主長(zhǎng)得像飘千,于是被迫代替她去往敵國(guó)和親堂鲜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

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