读书人

每日一算法(链表逆序子字符串等几个

发布时间: 2012-10-19 16:53:36 作者: rapoo

每天一算法(链表逆序,子字符串等几个一起)

(1) 用一种算法来颠倒一个链接表的顺序。现在在不用递归式的情况下做一遍。

int sunday(const char *src,const char *des){int i,j,pos=0;int len_s,len_d;int next[26]={0};                                //next数组,预处理初始化len_s=strlen(src);len_d=strlen(des);for(j=0;j<26;++j)                       //初始化next数组next[j]=len_d;for(j=0;j<len_d;++j)                        //设置next数组next[des[j]-'a']=len_d-j; while( pos<(len_s-len_d+1) )               //遍历原串          {i=pos;for(j=0;j<len_d;++j,++i)              //比较{if(src[i]!=des[j])                //一旦不匹配,原串就按照next跳转{pos+=next[src[pos+len_d]-'a'];break;}}if(j==len_d)return pos;}return -1;                               //无子串则返回-1}int main(){char src[]="abcdacdaahfacabcdabcdeaa";char des[]="abcde";cout<<sunday(src,des)<<endl;return 0;}



读书人网 >编程

热点推荐