首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-10-19 
每天一算法(链表逆序,子字符串等几个一起)(1) 用一种算法来颠倒一个链接表的顺序。现在在不用递归式的情况

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

(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;}



热点排行