A国认为如果字符串a可以通过操作X变成字符串b,就认为是一样的字符串。
操作X:将字符串分为两部分,然后调换位置,操作次数不限。W=xy,W’=yx。
有多组测试数据,处理到文件结尾。每组测试数据包含两个个字符串(包含英文字符和数字,长度为[1,500000])。
对于每组测试数据,如果两个字符串是相同的,输出Yes或者是No。
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{int i,j,k,l,t;char a[500010];char b[500010];while(scanf("%s%s",a,b)!=EOF){int la=strlen(a);int lb=strlen(b);if(la!=lb){printf("Non");continue;}if(strcmp(a,b)==0){printf("Yesn");continue;}int flag=0;int f1=1;int f2=1;for(i=0;i<la;i++){if(a[i]==b[0]){t=1;f1=1;f2=1;for(j=i+1;j<la;j++,t++){//printf("%c %d %c %dn",a[j],j,b[t],t);if(a[j]!=b[t]){f1=0;//printf("cccn");break;}}if(f1==0)continue;//printf("bbbbbn");t=la-i;int h;//printf("tttttt %d %dn",t,i);for(j=0;j<i;j++,t++){//printf("jfklsdjn");// printf("ggggg %c %d %c %dn",a[j],j,b[t],t);if(a[j]!=b[t]){f2=0;break;}}if(f2==0)continue;if(f1&&f2){//printf("aaaaan");flag=1;break;}}}if(flag){printf("Yesn");}else{printf("Non");}}return 0;
}
本文发布于:2024-02-03 00:33:06,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170689158447487.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |