题目
Implement strStr().
Returns the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack.
Update (2014-11-02):
The signature of the function had been updated to return the index instead of the pointer. If you still see your function signature returns a char * or String, please click the reload button to reset your code definition.
找到一个字符串中是否存在目标字符串,不存在返回-1,存在返回其首字母索引
思路
暴力双循环解法,但是要注意目标字符串为空的情况
代码
Python代码
class Solution:
# @param {string} haystack
# @param {string} needle
# @return {integer}
def strStr(self, haystack, needle):
needleLen = len(needle)
haystackLen = len(haystack)
pos = -1
if haystackLen < needleLen:
return pos
for i in range(haystackLen-needleLen+1):
for n,j in enumerate(range(i,i+needleLen)):
if haystack[j] == needle[n]:
pass
else:
break
else:
pos = i
break
return pos
Java代码
public class Solution {
public int strStr(String haystack, String needle) {
if(haystack.length()<needle.length())
{
return -1;
}
if(needle.length()==0) return 0;
for(int i=0; i<=haystack.length()-needle.length();i++)
{
for(int j=0;j<needle.length();j++)
{
if(haystack.charAt(i+j) == needle.charAt(j))
{
if(j == needle.length()-1) return i;
continue;
}else{
break;
}
}
}
return -1;
}
}