Day 9 实现strStr()和外观数列

又拖了两天,真是要批评一下自己,虽然这两道题有需要加以理解的地方,但是每次想写的时候总是被一种无形的力量阻挠一下,还是得坚定一下自己的信念,其实想明白也不需要非常多的时间,提高一下对自己的要求还是必要的。

实现strStr()

这是第28题,题目的意思是找出字符串中第一个匹配项的下标,就是说现在给定一个主字符串,再给定一个目标字符串,需要在主字符串中寻找目标字符串,并将主字符串中目标字符串的首个下标找出并返回。

遍历求解

在读完这个题目之后,我便有了遍历的想法,就是我从主字符串中的每一个元素位置开始与目标字符串进行比较,如果不匹配,就从主字符串的下一个元素位置进行匹配,按照这样的办法直到匹配得到目标字符串或是遍历完主字符串,就可以完成这道题目的要求。

int strStr(char* haystack, char* needle) {
    if(strlen(haystack) < strlen(needle)){
        return -1;
    }
    for (int i = 0; i < strlen(haystack) - strlen(needle) + 1; i++)
    {
        int flag = 1;
        int j = 0;
        while (j < strlen(needle))
        {
            if (haystack[i+j] != needle[j])
            {
                flag = 0;
                break;
            }
            j++;
        }
   

你可能感兴趣的:(算法)