• 大小: 46KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-01-05
  • 语言: 其他
  • 标签: Makefi  工程构建  

资源简介

初学者刚刚接触Linux时,使用Makefile构建工程,难于上手,此项目为我平时使用的工程整个打包,内含有文件夹 include(存放头文件)src(存放源码) obj(存放生成的.o文件) bin(存放生成可执行文件) 以及整个工程的Makefile。使用者只需要添加自己的源码文件即可,另外在test.c文件中的main函数对其调用即可。

资源截图

代码片段和文件信息

/****************************************************************************************
>FileName:      exercise28.c
>Description:   
>Authot:        zhangxu
>Date:          2019.04.04
>Version:       V0.1
****************************************************************************************/

#include 

using namespace std;

/*****************************************************************
> 暴力法
******************************************************************/
int Solution28::strStr(string haystack string needle) 
{   
    int m = haystack.size();
    int n = needle.size();

    if(0 == m || 0 == n)
    {
        return -1;
    }
        
    for(int i = 0; i < m-n; i++ )
    {
        int j = 0;
            
        for(j = 0; j < n ; j++)
        {
            if(haystack[i+j] != needle[j])
            {
                break;
            }
        }
            
        if(j == n)
        {
            return i;
        }
    }    
    
    return -1;   
}

/******************************************************************
>KMP方法:原理详细讲解见网址:
>https://blog.csdn.net/yangwangnndd/article/details/89042454
>https://www.cnblogs.com/en-heng/p/5091365.html
******************************************************************/
static int *getNext(string needle)
{
    int i j;
    int strSize = needle.size();

    int *f = new int[strSize];
    f[0] = -1;

    for( j = 1; j < strSize; j++)
    {
        for(i = f[j-1]; ; i = f[i])
        {
            if(needle[j] == needle[i+1])
            {
                f[j] = i+1;
                break;
            }
            else if(-1 == i)
            {
                f[j] = -1;
                break;
            }
        }
    }

    return f;
}

int Solution28::strStr_KMP(string haystack string needle)
{
    int i j;
    int *f = getNext(needle);

    for(i = 0 j = 0; i < haystack.size() && j < needle.size();)
    {
        if(haystack[i] == needle[j])
        {
            i++;
            j++;
        }
        else if(0 == j)
        {
            i++;
        }
        else
        {
            j = f[j-1] + 1;
        }
    }

    delete f;
    return j == needle.size() ? i - needle.size() : -1;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      66440  2019-04-06 09:12  leetcode\bin\test

     文件        493  2019-04-06 09:12  leetcode\include\leetcode.h

     文件        444  2019-04-06 09:12  leetcode\Makefile

     文件      59816  2019-04-06 09:12  leetcode\obj\exercise28.o

     文件      59680  2019-04-06 09:12  leetcode\obj\test.o

     文件       2341  2019-04-06 09:12  leetcode\src\exercise28.c

     文件        599  2019-04-06 09:12  leetcode\src\test.c

     目录          0  2019-04-06 09:12  leetcode\bin

     目录          0  2019-04-06 09:12  leetcode\include

     目录          0  2019-04-06 09:12  leetcode\obj

     目录          0  2019-04-06 09:12  leetcode\src

     目录          0  2019-04-06 09:12  leetcode

----------- ---------  ---------- -----  ----

               189813                    12


评论

共有 条评论