AT4171 [ABC103B] String Rotatio

思路

这道题可以模拟来解决。

应判断以下三点:

  1. 如果两个字符串相等输出Yes

  2. 如果两个字符串长度不相等输出No

  3. 否则进行模拟。

    • 如果两个字符串在模拟了一遍后还是不相等就输出No

    • 否则输出Yes

代码

#include<iostream>
#include<cstring>
#include<string>
using namespace std;
string s1,s2;
int len1,len2;
void mn()
{
	string s3=s1;
	for(int i=0;i<len1-1;++i)
	    s1[i]=s3[i+1];
	s1[len1-1]=s3[0];
}//模拟 
int main()
{
	cin>>s1>>s2;
	len1=s1.size(),len2=s2.size();
    if(s1==s2) cout<<"Yes"<<endl;
	else if(len1!=len2) cout<<"No"<<endl; 
	else
	{
		int t=0;
		bool f=0;
		while(s1!=s2)
		{
			if(t==len1) {cout<<"No"<<endl;f=1;break;}//如果循环完一遍还不相等就输出No
			t++;
			mn();
		}
		if(!f)  cout<<"Yes"<<endl;
	}
	return 0;
}
posted @ 2022-02-02 14:58  exaqp  阅读(40)  评论(0编辑  收藏  举报