字符串查找

對于一個(gè)給定的 source 字符串和一個(gè) target 字符串链瓦,你應(yīng)該在 source 字符串中找出 target 字符串出現(xiàn)的第一個(gè)位置(從0開始)。如果不存在盯桦,則返回 -1慈俯。

說明:在面試中我是否需要實(shí)現(xiàn)KMP算法?

  • 不需要俺附,當(dāng)這種問題出現(xiàn)在面試中時(shí)肥卡,面試官很可能只是想要測試一下你的基礎(chǔ)應(yīng)用能力。當(dāng)然你需要先跟面試官確認(rèn)清楚要怎么實(shí)現(xiàn)這個(gè)題事镣。
  • 樣例
    如果 source = "source" 和 target = "target"步鉴,返回 -1揪胃。
    如果 source = "abcdabcdefg" 和 target = "bcd",返回 1氛琢。
    O(n2)的算法是可以接受的喊递。如果你能用O(n)的算法做出來那更加好。(提示:KMP)
public class strStr {
    /**
     * 解決思路:首先我們有source字符串和target字符串阳似,source字符串最后的幾個(gè)字符串長度小于target肯定不會(huì)有首次出現(xiàn)的可能骚勘。
     * 所以應(yīng)該進(jìn)行遍歷操作的source字符串的長度是(source.length-target.length)的長度。
     * 在上面那個(gè)遍歷中撮奏,我們可以獲取source的position獲取具體字符俏讹,再將target的所有字符串進(jìn)行遍歷,如果第一個(gè)字符與source的相同
     * 那么
     * 畜吊,繼續(xù)下一個(gè)target及下一個(gè)source中的字符進(jìn)行對比泽疆,直到target.length次后如果完全想同則返回外層遍歷那個(gè)position,
     * 如果不同則返回上層遍歷玲献,postion+1殉疼,繼續(xù)進(jìn)行target的比對操作,如果全部沒有則返回-1捌年;
     * 時(shí)間復(fù)雜度為:O(n^2)
     */
    public int solution(String source, String target) {
        if (source == null || target == null) {
            return -1;
        }
        for (int i = 0; i <= source.length() - target.length(); i++) {
            int j = 0;
            for (j = 0; j < target.length(); j++) {
                if (source.charAt(i + j) != target.charAt(j))
                    break;
            }
            if (j == target.length()) {
                return i;
            }

        }

        return -1;
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末瓢娜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子礼预,更是在濱河造成了極大的恐慌眠砾,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逆瑞,死亡現(xiàn)場離奇詭異荠藤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)获高,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門哈肖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人念秧,你說我怎么就攤上這事淤井。” “怎么了摊趾?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵币狠,是天一觀的道長。 經(jīng)常有香客問我砾层,道長漩绵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任肛炮,我火速辦了婚禮止吐,結(jié)果婚禮上宝踪,老公的妹妹穿的比我還像新娘。我一直安慰自己碍扔,他們只是感情好瘩燥,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著不同,像睡著了一般厉膀。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上二拐,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天服鹅,我揣著相機(jī)與錄音,去河邊找鬼卓鹿。 笑死菱魔,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的吟孙。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼聚蝶,長吁一口氣:“原來是場噩夢啊……” “哼杰妓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起碘勉,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤巷挥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后验靡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體倍宾,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年胜嗓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了高职。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,018評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡辞州,死狀恐怖怔锌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情变过,我是刑警寧澤埃元,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站媚狰,受9級特大地震影響岛杀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜崭孤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一类嗤、第九天 我趴在偏房一處隱蔽的房頂上張望糊肠。 院中可真熱鬧,春花似錦土浸、人聲如沸罪针。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泪酱。三九已至,卻和暖如春还最,著一層夾襖步出監(jiān)牢的瞬間墓阀,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工拓轻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留斯撮,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓扶叉,卻偏偏與公主長得像勿锅,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子枣氧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評論 2 345

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

  • 描述 對于一個(gè)給定的 source 字符串和一個(gè) target 字符串溢十,你應(yīng)該在 source 字符串中找出, t...
    6默默Welsh閱讀 297評論 0 0
  • 一.順序查找 1.1 思路:這是最簡單的算法,從頭開始遍歷每個(gè)元素达吞,并將每個(gè)元素與查找元素比較张弛,如果一致則返回。1...
    deffing閱讀 1,179評論 0 1
  • 版權(quán)聲明:本文為博主原創(chuàng)文章酪劫,未經(jīng)博主允許不得轉(zhuǎn)載吞鸭。 難度:容易 要求: 對于一個(gè)給定的 source 字符串和一...
    柒黍閱讀 394評論 0 0
  • 今日觀點(diǎn) 《搜神記》里的三個(gè)故事:孔子斗大魚的故事、李寄斬蛇的故事覆糟、度朔君的故事刻剥。從中梳理出鬼靈精怪的生成原理和行...
    爺有蔓草閱讀 725評論 0 0
  • 強(qiáng)子背著噴霧器給麥子打藥,那個(gè)時(shí)候麥子差不多快熟了搪桂,根本不用打藥透敌,可強(qiáng)子還是去了。 毒辣的太陽烤著麥田踢械,陽光和麥田...
    心晴豆瓣醬閱讀 236評論 0 0