题解:P11579 [CCC2020] Cyclic Shifts
题目链接
P11579 [CCC2020] Cyclic Shifts
思路
注意看,数据范围写着
那么
注意到,
范围如此小,考虑打表!
好吧,这题打不了表。
那么我们就暴力加模拟。
- 将
s 的第一位放至末尾。 - 在
t 中找有没有移位后的s ,有则输出yes并且结束程序。 - 如果没有,循环结束后输出
no。
注意字符串
这里教你们两个字符串函数:
substr函数:用于截取子字符串。本例中用于提取s 截取第一位后的字符串。find函数:寻找字符串。本例中用于在t 中找有没有移位后的s 。
代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
string t,s;
cin>>t>>s;
string ss=s;//找替身
for(int i=0;i<s.size();i++)
{
string hc;
hc+=ss[0];
ss=ss.substr(1);
ss=ss+hc;
//模拟组建过程
if(t.find(ss)!=-1)
{
cout<<"yes";
return 0;
}//判断
}
cout<<"no";
return 0;
}