您的位置:首页 > 其它

LeetCode Implement strStr()

2016-07-19 13:20 453 查看
Implement strStr().

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

/**
* 字符串haystack是否存在子串needle
* @param haystack
* @param needle
* @return
*/
public int strStr(String haystack, String needle) {
if (haystack == null) {
return -1;
}
if (needle == null || needle.length() == 0) {
return 0;
}
if (needle.length() > haystack.length()) {
return -1;
}
char[] source = haystack.toCharArray();
char[] target = needle.toCharArray();
char first = target[0];
int max = source.length - target.length;
for (int i = 0; i <= max; i++) {
//寻找子串第一个字符
if (source[i] != first) {
while (++i <= max && source[i] != first) ;
}
if (i <= max) {
int j = i + 1;
int end = i + target.length;
for (int k = 1; j < end && source[j] == target[k]; j++,k++);
//匹配字符串
if (j == end) {
return i;
}
}
}

return -1;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode