LeetCode题解——Implement strStr()
2015-07-29 14:25
267 查看
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
reset your code definition.
You could demonstrate to your interviewer that this problem can be solved using known efficient algorithms such as Rabin-Karp algorithm, KMP algorithm, and the Boyer- Moore algorithm. Since these algorithms are usually studied in an advanced algorithms class,
it is sufficient to solve it using the most direct method in an interview – The brute force method.
The brute force method is straightforward to implement. We scan the needle with the haystack from its first position and start matching all subsequent letters one by one. If one of the letters does not match, we start over again with the next position in the
haystack.
The key is to implement the solution cleanly without dealing with each edge case separately.
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.
class Solution { public: int strStr(string haystack, string needle) { // return haystack.find(needle); for(int i=0; ;i++){ for(int j=0; ;j++){ if(needle[j]=='\0') return i; if(haystack[i+j]=='\0') return -1; if(needle[j]!=haystack[i+j]) break; } } } };
O(nm) runtime, O(1) space – Brute force:
You could demonstrate to your interviewer that this problem can be solved using known efficient algorithms such as Rabin-Karp algorithm, KMP algorithm, and the Boyer- Moore algorithm. Since these algorithms are usually studied in an advanced algorithms class,it is sufficient to solve it using the most direct method in an interview – The brute force method.
The brute force method is straightforward to implement. We scan the needle with the haystack from its first position and start matching all subsequent letters one by one. If one of the letters does not match, we start over again with the next position in the
haystack.
The key is to implement the solution cleanly without dealing with each edge case separately.
相关文章推荐
- android:layout_weight的真实含义
- VC图像处理之灰度化与中值滤波
- hdu 5301 Buildings
- NYOJ 月老的难题 239【匹配+邻接表】
- 缓存
- python3入门之字典
- formvalidator4.1.3 使用过程中一些问题的解决
- 基于Linux根据僵尸网络病毒平台《比尔盖茨》
- 自定义组件-onFinishInflate&onSizeChanged
- ioctlsocket函数全面解析
- VS2013无法调试Unity3D问题
- js+div悬浮框
- 车库门开启器
- html css一些记录
- css 实现垂直居中的5种方法
- ios开发--注册通知NSNotificationCenter
- webrtc中scope_ptr的使用
- 【Android】保存Fragment切换状态
- 关于2-sat的建图方法及解决方案
- 003--web.xml问题汇总