1. 题目
给你两个字符串
haystack
和needle
,请你在haystack
字符串中找出needle
字符串的第一个匹配项的下标(下标从 0 开始)。如果needle
不是haystack
的一部分,则返回-1
。
2. 示例
示例 1:
输入:haystack = "sadbutsad", needle = "sad" 输出:0 解释:"sad" 在下标 0 和 6 处匹配。 第一个匹配项的下标是 0 ,所以返回 0 。示例 2:
输入:haystack = "leetcode", needle = "leeto" 输出:-1 解释:"leeto" 没有在 "leetcode" 中出现,所以返回 -1 。
3. 解题思路
int strStr(char* haystack, char* needle) { //通过匹配子字符串暴力破解
int hayLen=strlen(haystack); //长字符
int neL
break;en=strlen(needle); //短字符
for(int i=0;i<=hayLen-neLen;i++){// 外层循环为子字符串匹配次
for(int j=0;j<neLen;j++)
{
if(haystack[i+j]!=needle[j]) //不相等立马退出循环,进行下个字符串匹配
{
}
if(j==neLen-1) //循环结束说明完全匹配到
{
return i; //返回该字符串的起点
}
}
}
return -1;
}