Implement strStr().
Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack.
https://oj.leetcode.com/problems/implement-strstr/
思路:目测有BF法,BMP法,BM法等。
BF法
public class Solution {
public String strStr(String hayStack, String needle) {
if (hayStack == null || needle == null)
return null;
int hayLen = hayStack.length();
int neeLen = needle.length();
if (hayLen < neeLen)
return null;
int i, j;
int hayStart = 0;
while (hayStart <= hayLen-neeLen) {
i = hayStart;
j = 0;
while (i < hayLen && j < neeLen
&& hayStack.charAt(i) == needle.charAt(j)) {
i++;
j++;
}
if (j == neeLen) {
return hayStack.substring(hayStart);
}
hayStart++;
}
return null;
}
public static void main(String[] args) {
System.out.println(new Solution().strStr("abcdefg", "cde"));
System.out.println(new Solution().strStr("cde", ""));
System.out.println(new Solution().strStr("aaabbb", "abbb"));
System.out.println(new Solution().strStr("", ""));
}
}
参考:
http://blog.csdn.net/kenden23/article/details/17029625
http://fisherlei.blogspot.com/2012/12/leetcode-implement-strstr.html
[leetcode] Implement strStr(),布布扣,bubuko.com
原文:http://www.cnblogs.com/jdflyfly/p/3810718.html