首页 > 其他 > 详细

Implement strStr()

时间:2016-01-11 06:43:56      阅读:144      评论:0      收藏:0      [点我收藏+]

Question: https://leetcode.com/problems/implement-strstr/

题目:

Implement strStr().

Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.


 Solutions:

  1. Naive Solution 很容易实现。O(n2) runtime.
  2. Rolling Hash.  之前也实现过,O(n) runtime. 可是 hashcode 容易溢出,并且无法保证完全没有 Conflict。 减少 Conflict 可能性,是采用 BigInteger 来记录 hashcode 的值。
  3. KMP Tutorial: https://www.youtube.com/watch?v=GTJr8OvyEVQ&index=6&list=PLbLSJnQZCOwMTKzcGHHJi_1DdFDbriKke
    基本思路是寻找 pattern String 的 Prefix Pattern,不难理解

Naive Solution:

 1 public int strStr(String haystack, String needle) {
 2     if(haystack == null) {
 3         return -1;
 4     }
 5     
 6     if(needle == null) {
 7         return haystack.length();
 8     }
 9     
10     if(haystack.length() < needle.length()) {
11         return -1;
12     }
13     
14     for(int i = 0; i <= haystack.length() - needle.length(); i++) {
15         String tmp = haystack.substring(i, i+needle.length());
16         if(tmp.equals(needle)) {
17             return i;
18         }
19     }
20     
21     return -1;
22 }

 

Implement strStr()

原文:http://www.cnblogs.com/Phoenix-Fearless/p/5120060.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!