洛谷 AT4171 题解

题目传送门


题意:

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


思路:

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

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

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

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


code:

#include <bits/stdc++.h>
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<len;i++){
			if(s1==s2){
				printf("Yes");
				return 0;
			}
			char t=s1[len-1];
			for(int j=len-1;j;j--){
				s1[j]=s1[j-1];
			}
			s1[0]=t;
		}
		printf("No");
	}
	return 0;
}


posted @   Black--Panda  阅读(75)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示