#include<iostream>
#include<string>
using namespace std;
//子串、反序、查找
//穷举所有循环移位,逐个进行字符串匹配,时间复杂度:o(n^2)
void fun1(string s1,string s2)
{
string temp,part1="",part2="";
int j = s1.length();
bool r = false;
for(int i=0;i<j;i++)
{
part1 = s1.substr(i,j);
part2 = s1.substr(0,i);
std::reverse(part2.begin(), part2.end());
temp = part1+part2;
if(temp.find(s2)!=string::npos)
{
r = true;
break;
}
}
cout<<r<<endl;
}
//推理得出=>s循环移位所得到的字符串是字符串ss的子串
void fun2(string s1,string s2)
{
string temp;
temp = s1+s1;
bool r = (temp.find(s2)!=string::npos);
cout<<r<<endl;
}
int main()
{
string s1,s2;
cin>>s1>>s2;
fun1(s1,s2);
fun2(s1,s2);
return 0;
}
编程之美3.1——字符串循环移位
最新推荐文章于 2020-10-24 21:57:31 发布