Hd Simpsons’ Hidden Talents
生活随笔
收集整理的這篇文章主要介紹了
Hd Simpsons’ Hidden Talents
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
點(diǎn)擊打開鏈接
這道題的意思就是讓第一個字符串的前綴等于第二的字符串的后綴,看相似的字符有幾個。
因?yàn)橹白鲇H和串來的思,路因?yàn)槊總€字符如若不匹配都是要和第一個相比較的,我就把兩個字符串連在一起,再讓這個新的字符串自身匹配。但是要注意出現(xiàn)就是兩個字符串相等的情況!~
#include<stdio.h> #include<string.h> int next[100005]; int sn,sm; char str[100005],ch[50005]; int getnext() {int i,j=0,flag=0;next[1]=0;for(i=2;i<=sn;i++){while(j>0&&str[i]!=str[j+1])j=next[j];if(str[i]==str[j+1])j++;next[i]=j;/*if(i==sn)flag= j+1;*/}return next[sn]; }int main() {int i,j,cout;while(~scanf("%s %s",str+1,ch+1)){cout=0;memset(next,0,sizeof(next));sn=strlen(str+1);sm=strlen(ch+1);int ans = sn < sm ? sn:sm;for(i=1;i<=sm;i++)str[++sn]=ch[i];//printf("%d %s\n",sn,str+1);cout=getnext();/*if(!cout)puts("0");else*/if(cout > ans)cout = ans;if(cout == 0){puts("0");continue;}for(i = 1; i <= cout ; i++)printf("%c",str[i]);printf(" %d\n",cout);}return 0; }
總結(jié)
以上是生活随笔為你收集整理的Hd Simpsons’ Hidden Talents的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kmp——next数组的应用---cou
- 下一篇: 智力+贪心的过河问题