C - YesOrNo

2024-06-09 04:58
文章标签 yesorno

本文主要是介绍C - YesOrNo,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Description
A国认为如果字符串a可以通过操作X变成字符串b,就认为是一样的字符串。


操作X:将字符串分为两部分,然后调换位置,操作次数不限。W=xy,W’=yx。


Input
有多组测试数据,处理到文件结尾。每组测试数据包含两个个字符串(包含英文字符和数字,长度为[1,500000])。


Output
对于每组测试数据,如果两个字符串是相同的,输出Yes或者是No。


Sample Input
YesOrNo
NoOrYes
YesOrNo
rNoYesO
Sample Output
No 

Yes

#include<iostream>
#include<stdio.h>
#include<cstring>
#include<cstdlib>
using namespace std;
char a[500005];
char b[500005];
char c[500005];
int main()
{int i;int alen,blen;int flag;while(scanf("%s%s",a,b)!=EOF){getchar();alen=strlen(a);blen=strlen(b);if(alen!=blen){printf("No\n");continue;}flag=0;for(i=0; i<alen; i++){if(b[0]==a[i]){strncpy(c,a+i,alen-i);strncpy(c+alen-i,a,i);c[alen]='\0';if(strcmp(b,c)==0){flag=1;break;}}}if(flag==1)printf("Yes\n");elseprintf("No\n");}return 0;
}

法2:

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
int main()
{string s1,s2;while(cin>>s1){cin>>s2;if(s1.size()!=s2.size()){cout<<"No"<<endl;continue;}else if(s1==s2){cout<<"Yes"<<endl;continue;}int len=s1.size();int flag=0;if(s1.size()==2){if(s1[0]=s2[1]&&s1[1]==s2[0]){printf("Yes\n");continue;}}string s3,s4,s5;for(int i=0;i<len;i++){if(s2[0]==s1[i]){s3.assign(s1,0,i);//cout<<s3<<endl;s4.assign(s1,i,len-i+1);//cout<<s4<<endl;s5=s4+s3;//cout<<s5<<endl;if(s5==s2){flag=1;break;}}}if(flag==1)printf("Yes\n");else if(flag==0)printf("No\n");}return 0;
}




这篇关于C - YesOrNo的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1044276

相关文章

FZU 2154 YesOrNo

Description A国认为如果字符串a可以通过操作X变成字符串b,就认为是一样的字符串。 操作X:将字符串分为两部分,然后调换位置,操作次数不限。W=xy,W’=yx。 Input 有多组测试数据,处理到文件结尾。每组测试数据包含两个个字符串(包含英文字符和数字,长度为[1,500000])。 Output 对于每组测试数据,如果两个字符串是相同的,输出Ye

fzu Problem 2154 YesOrNo

Problem 2154 YesOrNo Accept: 61    Submit: 129 Time Limit: 1000 mSec    Memory Limit : 32768 KB Problem Description A国认为如果字符串a可以通过操作X变成字符串b,就认为是一样的字符串。 操作X:将字符串分为两部分,然后调换位置,操作次数不限。W=

Fzu 2154 YesOrNo【最小表示法】

Problem 2154 YesOrNo Accept: 160    Submit: 351 Time Limit: 1000 mSec    Memory Limit : 32768 KB  Problem Description A国认为如果字符串a可以通过操作X变成字符串b,就认为是一样的字符串。 操作X:将字符串分为两部分,然后调换位置,操作次数不限。W=xy

FZU2154 Problem 2154 YesOrNo

Problem 2154 YesOrNo Accept: 62    Submit: 130 Time Limit: 1000 mSec    Memory Limit : 32768 KB  Problem Description A国认为如果字符串a可以通过操作X变成字符串b,就认为是一样的字符串。 操作X:将字符串分为两部分,然后调换位置,操作次数不限。W=xy,W’=y

FZU - 2154 - YesOrNo (字符串~)

Problem 2154 YesOrNo Accept: 129    Submit: 283 Time Limit: 1000 mSec    Memory Limit : 32768 KB  Problem Description A国认为如果字符串a可以通过操作X变成字符串b,就认为是一样的字符串。 操作X:将字符串分为两部分,然后调换位置,操作次数不限。W=xy,