首页 > 代码库 > HDU 4300 Clairewd’s message
HDU 4300 Clairewd’s message
字符串匹配:
先把已给串n[]全按转换表s[]转换为明码存入m[]中;
接下来只要求出k:n[lenn-k~lenn-1]==m[0~k];
输出n[0~k],m[0~k];
1 #include <iostream> 2 #include <cstring> 3 using namespace std; 4 5 char s[50],n[100010],m[100010]; 6 int a[50]; 7 8 int main (){ 9 int t;10 cin>>t;11 while (t--){12 cin>>s;13 cin>>n;14 int lens,lenn;15 lens=strlen(s);16 lenn=strlen(n);//cout<<lens<<" "<<lenn<<endl;17 for (int i=0;i<lens;i++){18 a[s[i]-‘a‘]=i;19 }20 for (int i=0;i<lenn;i++){21 m[i]=a[n[i]-‘a‘]+‘a‘;22 }23 if (lenn==1){24 cout<<n[0]<<m[0]<<endl;25 continue ;26 }27 int x=lenn;28 for (int i=(lenn+1)/2;i<lenn;i++){29 int flag=1;30 for (int j=i;j<lenn;j++){31 if (m[j-i]!=n[j]){32 flag=0;33 break ;34 }35 }36 if (flag){37 x=i;38 break ;39 }40 }//cout<<n<<" "<<m<<endl<<x<<endl;41 for (int i=0;i<x;i++)42 cout<<n[i];43 for (int i=0;i<x;i++){44 cout<<m[i];45 }46 cout<<endl;47 }48 return 0;49 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。