28.Implement strStr()(Easy)

Implement strStr().
Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
返回needle在haystack中第一次出現(xiàn)的位置的索引值,如果沒有找到缭乘,就返回-1

  就是尋常的字符串匹配搜索耘沼,應(yīng)該因為是簡單題,所以樸素的循環(huán)比較也能過,事實上應(yīng)該要用KMP算法的

My Solution

(Java) Version 1 Time: 7ms:

  這就是一個典型的樸素的兩重循環(huán)比較的算法,沒有什么好說的


public class Solution {
    public int strStr(String haystack, String needle) {
        if(haystack.length()==needle.length()){
            if(haystack.length()==0)return 0;
            else if(haystack.equals(needle))return 0;
            else return -1;
        }
        else if(needle.length()==0)return 0;
        char[] c1=haystack.toCharArray();
        char[] c2=needle.toCharArray();
        for(int i=0;i<c1.length-c2.length+1;i++){
            for(int j=0;j<c2.length;j++){
                //System.out.println(c2[j]+"__"+c1[j+i]);
                if(c2[j]!=c1[j+i])
                    break;
                else if(j==c2.length-1)
                    return i;
            }
        }
        return -1;
    }
}

(Java) Version 2 Time: 6ms (By Kexin_Li):

  講道理,我內(nèi)心的想法就是——這TMD也可以呐能??不是很懂contains的使用范圍

public class Solution {
    public int strStr(String haystack, String needle) {
        return haystack.contains(needle) ? haystack.indexOf(needle) : -1;
    }
}

(Java) Version 3 Time: 6ms (By Domenickd3):

  這是用substring切割了字符串抑堡,然后做比較摆出,事實上和兩個循環(huán)并無多大不同,只是第二個循環(huán)用了Java自己的方法首妖,也許對比直接用for循環(huán)會有優(yōu)化

public class Solution {
    public int strStr(String haystack, String needle) {
        for (int i = 0; i < haystack.length() - needle.length() + 1; ++i) {
            if (haystack.substring(i, i + needle.length()).equals(needle)) {
                return i;
            }
        }
        return -1;
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末偎漫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子有缆,更是在濱河造成了極大的恐慌骑丸,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妒貌,死亡現(xiàn)場離奇詭異,居然都是意外死亡铸豁,警方通過查閱死者的電腦和手機灌曙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來节芥,“玉大人在刺,你說我怎么就攤上這事逆害。” “怎么了蚣驼?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵魄幕,是天一觀的道長。 經(jīng)常有香客問我颖杏,道長纯陨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任留储,我火速辦了婚禮翼抠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘获讳。我一直安慰自己阴颖,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布丐膝。 她就那樣靜靜地躺著量愧,像睡著了一般。 火紅的嫁衣襯著肌膚如雪帅矗。 梳的紋絲不亂的頭發(fā)上偎肃,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機與錄音损晤,去河邊找鬼软棺。 笑死,一個胖子當(dāng)著我的面吹牛尤勋,可吹牛的內(nèi)容都是我干的喘落。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼最冰,長吁一口氣:“原來是場噩夢啊……” “哼瘦棋!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起暖哨,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤赌朋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后篇裁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沛慢,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年达布,在試婚紗的時候發(fā)現(xiàn)自己被綠了团甲。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡黍聂,死狀恐怖躺苦,靈堂內(nèi)的尸體忽然破棺而出身腻,到底是詐尸還是另有隱情,我是刑警寧澤匹厘,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布嘀趟,位于F島的核電站,受9級特大地震影響愈诚,放射性物質(zhì)發(fā)生泄漏她按。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一扰路、第九天 我趴在偏房一處隱蔽的房頂上張望尤溜。 院中可真熱鬧,春花似錦汗唱、人聲如沸宫莱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽授霸。三九已至,卻和暖如春际插,著一層夾襖步出監(jiān)牢的瞬間碘耳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工框弛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留辛辨,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓瑟枫,卻偏偏與公主長得像斗搞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子慷妙,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,465評論 2 348

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