洛谷 AT4171 题解


题目传送门


题意:

给出两个字符串,可以对其中一个字符串进行操作,将最后一个字符插到最前面,问经过不限次的操作后,是否可以将这两个字符串变成一样的。输出 YesNo


思路:

这道题可以分几种情况来考虑:

  • 两个字符串一开始就是相等的,不需要操作,直接输出 Yes

  • 两个字符串的长度不相同,无论经过多少次操作都不可能变成一样的,直接输出 No

  • 如果上述两种情况都不成立,直接模拟即可。共循环 \(n\) 次,每次将最后一个字符插入到最前面。


code:

#include 
using namespace std;

string s1,s2;

int main(){
	getline(cin,s1);
	getline(cin,s2);
	if(s1==s2){
		printf("Yes");
	}
	else if(s1.length() != s2.length()){
		printf("No");
	}
	else{
		int len=s1.length();
		for(int i=0;i