题目描述
Implement strStr().
Returns a pointer to the first occurrence of needle in haystack, or null if needle is not part of haystack.
给出一个字符串出现在另一个字符串中第一次出现位置的指针,如果没有,返回null。解题思路
如果是为了更快的话,貌似应该用KMP算法什么的,这里就用很一般的算法啦!
代码
public String strStr(String haystack, String needle) {
int lenHay = haystack.length();
int lenNeedle = needle.length();
if(lenNeedle==0 || haystack.equals(needle)){
return haystack;
}
if(lenNeedle > lenHay)
return null;
for (int i = 0; i < lenHay - lenNeedle;) {
if (haystack.charAt(i) == needle.charAt(0)) {
int j = 0;
while (j < lenNeedle
&& haystack.charAt(i + j) == needle.charAt(j)) {
j++;
}
if (j == lenNeedle) {
return haystack.substring(i, haystack.length());
} else {
i++;
}
} else {
i++;
}
}
return null;
}