怎樣應(yīng)對IT面試與筆試-(二)

1.1.2字符串

28. Implement strStr()

實(shí)現(xiàn)strStr()函數(shù)螟凭,給字符串s1板熊,s2帘饶,返回s2在s1中首次出現(xiàn)的位置下標(biāo)甜无,找不到則返回-1

1. 舉例子-畫圖-解題思路
28 (1).png

第一輪對比:

  • 從s1中的第一個(gè)元素s1[0]開始與s2中的第一個(gè)元素s2[0]比較:h-l柳譬、e-l喳张、l-l,發(fā)現(xiàn)s1[2]與s2[0]相等
  • 從s1[3]開始與s2[1]比較:o-l美澳,發(fā)現(xiàn)不等销部,本輪比較結(jié)束

第二輪對比:

  • 繼續(xù)從s1[3]開始與s2[0]比較:o-l、l-l制跟,發(fā)現(xiàn)s1[4]與s2[0]相等
  • s1[5]與s2[1]對比:l-l舅桩,兩者相等,且s2到達(dá)末尾
  • 返回下標(biāo)4
2. 寫核心邏輯代碼

兩個(gè)字符串間的字符比較問題雨膨,也會用到雙重循環(huán)江咳,只不過表達(dá)方式與數(shù)組的略有不同:

for (int i = 0; i < s1.length(); ++i) 
{
    for (int j = 0; j < s2.length(); ++j) 
    {
        //判斷邏輯
    }
}

基于上面模板,我們寫出題目的核心代碼(haystack是s1哥放,needle是s2)

int hlength = haystack.length(), nlength = needle.length();
//heloll與ll比較時(shí)歼指,沒有必要比較heloll的最后一個(gè)l元素
for (int i = 0; i < hlength - nlength + 1; i++) 
{
//要判斷needle是否達(dá)到末尾,所以把j拿到for循環(huán)外面保存
    int j = 0;
    for (; j < nlength; j++)
    {
        if (haystack[i + j] != needle[j])
            break;
    }
    if (j == nlength) return i;
}
return -1;
3. 完善邊界條件并提交代碼
class Solution {
public:
    int strStr(string haystack, string needle) {
        //增加邊界條件
        if (needle.empty()) return 0;
        if(haystack.empty()) return -1;
        int hlength = haystack.length(), nlength = needle.length();
        for (int i = 0; i < hlength - nlength + 1; i++) {
            int j = 0;
            for (; j < nlength; j++)
                if (haystack[i + j] != needle[j])
                    break;
            if (j == nlength) return i;
        }
        return -1;
    }
};
4. 更優(yōu)方案

KMP算法是一種更高效的字符串匹配算法甥雕,但其實(shí)現(xiàn)思路略復(fù)雜踩身,我們后面再做介紹

5. 總結(jié)

1.1.3 鏈表

83. Remove Duplicates from Sorted List

給一個(gè)有序鏈表,刪除其中重復(fù)的元素社露,使得每個(gè)元素的值只出現(xiàn)一次挟阻。

1.舉例子-畫圖-解題思路
217-op (1).png

鏈表已經(jīng)有序,所以只需要比較相鄰兩個(gè)元素值是否相等即可,相等時(shí)執(zhí)行刪除鏈表結(jié)點(diǎn)操作

2.寫核心邏輯代碼
ListNode *start = head;
while(start && start->next)
{
    if(start->val == start->next->val)
    {
        ListNode* tmp = start->next;
        start->next = start->next->next;
        delete tmp;
    }
    else
        start = start->next;
 }

標(biāo)準(zhǔn)的刪除鏈表結(jié)點(diǎn)操作附鸽,請小伙伴們熟記于心

3. 邊界條件
class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        //增加head為空或者只有一個(gè)結(jié)點(diǎn)時(shí)候的處理    
        if(!head || !head->next)
            return head;
        ListNode *start = head;
        while(start && start->next)
        {
            if(start->val == start->next->val)
            {
                ListNode* tmp = start->next;
                start->next = start->next->next;
                delete tmp;
            }
            else
                start = start->next;
        }
        return head;
    }
};
4. 優(yōu)化-無
5. 小結(jié)

怎樣應(yīng)對IT面試與筆試-(一)
怎樣應(yīng)對IT面試與筆試-(二)
怎樣應(yīng)對IT面試與筆試-(三)
怎樣應(yīng)對IT面試與筆試-(四)
怎樣應(yīng)對IT面試與筆試-(五)
怎樣應(yīng)對IT面試與筆試-(五-1)
怎樣應(yīng)對IT面試與筆試-(六)
怎樣應(yīng)對IT面試與筆試-(七)
怎樣應(yīng)對IT面試與筆試-(八)
怎樣應(yīng)對IT面試與筆試-(九)
怎樣應(yīng)對IT面試與筆試-(十)
怎樣應(yīng)對IT面試與筆試-(十一)
怎樣應(yīng)對IT面試與筆試-(十二)
怎樣應(yīng)對IT面試與筆試-(十三)
怎樣應(yīng)對IT面試與筆試-(十四)
怎樣應(yīng)對IT面試與筆試-(十五)
怎樣應(yīng)對IT面試與筆試-(十六)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脱拼,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子坷备,更是在濱河造成了極大的恐慌熄浓,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件省撑,死亡現(xiàn)場離奇詭異赌蔑,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)竟秫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進(jìn)店門娃惯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人肥败,你說我怎么就攤上這事趾浅。” “怎么了馒稍?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵皿哨,是天一觀的道長。 經(jīng)常有香客問我筷黔,道長,這世上最難降的妖魔是什么仗颈? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任佛舱,我火速辦了婚禮,結(jié)果婚禮上挨决,老公的妹妹穿的比我還像新娘请祖。我一直安慰自己,他們只是感情好脖祈,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布肆捕。 她就那樣靜靜地躺著,像睡著了一般盖高。 火紅的嫁衣襯著肌膚如雪慎陵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天喻奥,我揣著相機(jī)與錄音席纽,去河邊找鬼。 笑死撞蚕,一個(gè)胖子當(dāng)著我的面吹牛润梯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼纺铭,長吁一口氣:“原來是場噩夢啊……” “哼寇钉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起舶赔,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤遏插,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后栏赴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體痛阻,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年蚁袭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了征懈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡揩悄,死狀恐怖卖哎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情删性,我是刑警寧澤亏娜,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站蹬挺,受9級特大地震影響维贺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜巴帮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一溯泣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧榕茧,春花似錦垃沦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蜻拨,卻和暖如春池充,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背缎讼。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工纵菌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人休涤。 一個(gè)月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓咱圆,卻偏偏與公主長得像笛辟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子序苏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評論 2 348

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法手幢,類相關(guān)的語法,內(nèi)部類的語法忱详,繼承相關(guān)的語法围来,異常的語法,線程的語...
    子非魚_t_閱讀 31,598評論 18 399
  • 一、基本數(shù)據(jù)類型 注釋 單行注釋:// 區(qū)域注釋:/* */ 文檔注釋:/** */ 數(shù)值 對于byte類型而言...
    龍貓小爺閱讀 4,257評論 0 16
  • 前言 2. 實(shí)現(xiàn) Singleton 3. 數(shù)組中重復(fù)的數(shù)字 4. 二維數(shù)組中的查找 5. 替換空格 6. 從尾到...
    Observer_____閱讀 2,922評論 0 1
  • 產(chǎn)品|——種雞鏈?zhǔn)轿沽舷到y(tǒng) 推送畜牧行業(yè)設(shè)備知識動(dòng)態(tài),分享全球最新創(chuàng)意創(chuàng)新前沿技術(shù) kaleter鏈?zhǔn)轿沽舷到y(tǒng)優(yōu)勢...
    suyang2018閱讀 298評論 0 0
  • ——當(dāng)代大學(xué)畢業(yè)生就業(yè)生存實(shí)錄 【目錄】 從頭讀起:第一章 上一章 文丨春申君黃歇 到了六月份粪狼,臨近畢業(yè),因?yàn)樽罱K...
    春申君黃歇閱讀 260評論 0 3