1.代码展示
int strStr(char* haystack, char* needle)
{
int len = strlen(haystack);
int sz = strlen(needle);
if(len < sz)
{
return -1;
}
for(int i = 0;i < len;i++)
{
int flag = 1;
for(int j = 0;j < sz;j++)
{
if(haystack[i + j] != needle[j])
{
flag = 0;
break;
}
}
if(flag)
{
return i;
}
}
return -1;
}
2.思路解析
首先求出两个数组的长度,然后设计两个循环依次遍历比较,当然 haystack 数组长度要大于等于needle 数组的长度,所以要做一个判断(当然不判断也可以过),然后用两个 for 循环,用 flag 做判断标识,判断成立则返回下标,反之返回 -1。