LeetCode28 實現strStr 水題

2022-05-13 08:55:49 字數 653 閱讀 1832

一開始的想法是

取needle的第乙個字元開始唄,遇到合適的再比第二個。

如果是找到的話,肯定是乙個個比對完了。

找不到的情況就是,needle字串比haystack剩下的字串長了。

能夠跳的情況....算了,還是一步步來,這個不合適就比對下乙個。

比如原串1112,子串112,不好跳。

要注意一些情況就行了

這裡的begin設定的比較巧妙,減少了很多**

public

intstrstr(string haystack, string needle)

//到了這個len1肯定比len2大了

if(len2==0)

return 0;

//到了這裡,len1和len2都大於0

int begin = 0;

while(len1-begin>=len2)

}//正常跳出的話就是找到了

if(exist)

return

begin;

begin++;

}return -1;

}

前面的都是用庫函式的....

KMP演算法(相關題目 leetcode28題)

1.解決的問題 解決字串匹配問題。換言之,判斷乙個字串 原串 裡面是否包含另乙個字串 模式串 2.簡介 knuth morris pratt 簡稱kmp 演算法,是三個發明者名字首字母。3.舉例 原串 str abafcdabafdcc,索引為 i,模式串 tar abafd,索引為 j 這裡需要先...

Leetcode28 字串的匹配(KMP)

題目 題目的本質是給定兩個字串str1,str2,求str1中的str2串開始的地方,即字串的匹配,kmp演算法 思路 時間複雜度為o m n 空間複雜度為o n 原串的長度為m,子串的長度為n kmp演算法的本質是根據子串的next值求解的,所以首先講解next值得求法 字串的next值的求解方法...

Leetcode 28 二叉樹展開為鍊錶

題目 給你二叉樹的根結點 root 請你將它展開為乙個單鏈表 展開後的單鏈表應該同樣使用 treenode 其中 right 子指標指向鍊錶中下乙個結點,而左子指標始終為 null 展開後的單鏈表應該與二叉樹 先序遍歷 順序相同。示例 1 輸入 root 1,2,5,3,4,null,6 輸出 1,...