題目如下:
Implement?strStr().
Return the index of the first occurrence of needle in haystack, or?-1?if needle is not part of haystack.
Example 1:
Input:haystack = "hello", needle = "ll"Output:2
Example 2:
Input:haystack = "aaaaa", needle = "bba"Output:-1
分析:
題目很簡單景醇,就是查找有沒有字串就谜,有的話就返回字串在字符串中的首字母下標(biāo)
我覺得這個(gè)測試用例簡直深坑疯淫,比如haystack = "", needle = ""宪卿,output竟然是0,如果haystack = "a", needle = ""望众,output也為零匪补,唉不知道這樣做的意義何在啊~一開始提交的時(shí)候就是被這兩坑了啊@煤病:蝗薄!
其次我發(fā)現(xiàn)了自己的思維漏洞甘耿,一個(gè)測試用例為Input:haystack = “mississippi", needle = "issip”踊兜,Output: 4.?
一開始我的思路得到的答案是-1,即不存在棵里,因?yàn)槲覍τ趆aystack的計(jì)數(shù)器 i 是一直遞增的润文,這個(gè)測試用例告訴,遇到一開始重合殿怜,后面字符不重合時(shí),我們是需要回退的曙砂,如下圖:
那么回退的公式就是 i = i - j + 1头谜,即找到首字母相同的下一位,j 歸位 0鸠澈,繼續(xù)compare柱告。
代碼如下: