[leetcode] Implement strStr()

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






你可能感兴趣的:(java,LeetCode,String)