数据结构_串

2015-10-27  本文已影响37人  arkulo

github地址:
https://github.com/arkulo56/thought/blob/master/software/dataStruct/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84_%E4%B8%B2.md

定义

常用操作

查找子串、串的相似度、截取、反转、最长公共子串、分词、回文

顺序实现

链式存储

经典算法

朴素的模式匹配算法

https://raw.githubusercontent.com/arkulo56/thought/master/images/datastruct/simpleChuan.pnghttps://raw.githubusercontent.com/arkulo56/thought/master/images/datastruct/simpleChuan.png

代码实现:

#include <stdio.h>

int main(int args,char *argv[])
{
    char S[] = "abcde";
    char T[4] = "cde";
    int slen = sizeof(S);
    int tlen = sizeof(T);

    int i =  0;
    int j = 0;
    int from = 0;
    while(i<slen && j<tlen)
    {
        if(S[i]==T[j])
        {

            from = (from==0)?i:from;
            i++;
            j++;
        }else
        {

                i = i-j+1;
                j = 0;
                from = 0;
        }
    }
    if(j==tlen)
    {
        printf("include subString from index %d\n",from);
    }else
    {
        printf("no match!!\n");
    }
    return 0;
}

KMP算法

KMP算法图解+代码


上一篇 下一篇

猜你喜欢

热点阅读