AcWing 776. 字符串移位包含问题
原题链接
困难
作者:
隐灵
,
2024-01-10 15:52:25
,
所有人可见
,
阅读 45
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
string s1,s2;
cin >> s1 >> s2;
if(s1.size() < s2.size()) swap(s1,s2); //将s2设置为子串
for(int i = 0; i < s1.size(); i++) //循环移位所有可能
{
s1 = s1.substr(1) + s1[0]; //将移位后的串重新赋给s1
for(int j = 0; j + s2.size() <= s1.size(); j++) //将每一个位置都设置为开头开始遍历
{
int k = 0;
for(; k < s2.size(); k++) //遍历从j为开头的s1串,判断两个串是否相等
if(s1[j + k] != s2[k]) //如果其中有一个不相等,则两个串不相等,则跳出循环,开始下一个循环
break;
if(k == s2.size()) //如果k和s2的长度一样,说明两个串一样
{
puts("true");
return 0;
}
}
}
puts("false");
return 0;
}