字符串匹配

来源:互联网 发布:linux的vim配置文件 编辑:程序博客网 时间:2024/06/12 01:16
这里写代码片///字符串的最大/最小表示法///一个串 S = ababc,则其所有的循环同构串为 ababc,babca,abcab,bcaba,cabab.///最小表示法求得是所有同构串儿中字典序最小的起点pos///最大表示法求得是所有同构串儿中字典序最大的起点pos///默认是从起点处顺序往下走。///flag=1;最小///flag=0;最大int get_string(char *s,int flag){    int i=0,j=1,k=0,len=strlen(s);    while(i<len&&j<len&&k<len)    {        int t=s[(i+k)%len]-s[(j+k)%len];        if(t==0) { k++;}        else if(flag==1)        {            if(t>0) i+=k+1;            else j+=k+1;            if(i==j) j++;            k=0;        }        else if(flag==0)        {            if(t>0) j+=k+1;            else i+=k+1;            if(i==j) j++;            k=0;        }    }    return min(i,j)+1;}
原创粉丝点击