Implement strStr()
来源:互联网 发布:cpda项目数据分析挂靠 编辑:程序博客网 时间:2024/06/08 14:45
Implement strStr().
Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
Update (2014-11-02):
The signature of the function had been updated to return the index instead of the pointer. If you still see your function signature returns a char *
or String
, please click the reload button to reset your code definition.
Have you met this question in a real interview?
思路1 : 直接用暴力求解,找到字串的位置,
思路2 : 用 kmp 来解, 参考 我自己写的 KMP算法。
易错点: 1. 注意回溯到t 的头时候, j = -1, 这个时候 i 和 j 都要 ++ , 从头开始嘛。
2. 注意生成 next 数组的时候, 第一位要 -1, 最后一位不用比较。
public class Solution { public int strStr(String haystack, String needle) { int n = haystack.length(); int m = needle.length(); if (n < m) return -1; if (m == 0) return 0; if (n == 0) return -1; return KMP(haystack, needle); } public int KMP(String s, String t){ int[] next = new int[t.length()]; nextGenerate(t, next); int i = 0; int j = 0; while(i < s.length()){ if(j == -1 || s.charAt(i) == t.charAt(j)){//------- i++; j++; }else{ j = next[j]; } if(j == t.length()) return i - j; } return -1;}private void nextGenerate(String t, int[] next){ next[0] = -1; for(int i = 1; i < t.length() - 1; i++){//------- if(t.charAt(i) == t.charAt(next[i])) next[i + 1] = next[i] + 1; else next[i + 1] = 0; }}}
0 0
- Implement strStr()
- Implement strStr()
- Implement strStr()
- Implement strStr()
- Implement strStr()
- Implement strStr()
- Implement strStr()
- Implement strStr()
- Implement strStr()
- Implement strStr()
- Implement strStr()
- Implement strStr()
- Implement strStr()
- Implement strStr()
- Implement strStr()
- Implement strStr()
- Implement strStr()
- Implement strStr()
- 位运算
- (XCTest.h file not found)cocoapods引入Specta库之后报XCTest.h文件无法找到
- Git book 读书笔记 (二) -- 创建自己的仓库
- Python 使用nltk获取TF-IDF
- 好老师,什么样?
- Implement strStr()
- 《人人都想当经理》--自序
- 多态
- BZOJ 3028 食物 母函数
- Mainloop.c (1) 函数MainLoop 和PQExpBufferData,_psqlSettings
- Analyzing Specific Performance Problems
- Objective-C基础 (基本语法)
- flowplayer 各种事件
- Leetcode NO.15 3Sum