AcWing 776. 字符串移位包含问题
原题链接
困难
作者:
古娜拉黑暗之神
,
2021-02-20 23:50:31
,
所有人可见
,
阅读 276
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int main(){
// 暴力法
string str1,str2;
cin >> str1 >> str2;
if(str1.size() < str2.size()){ // 保证str1串是相对比较长的一个
swap(str1,str2); //swap函数不仅能够交换int,还能够交换string类型
}
for(int i=0;i<str1.size();i++){ //遍历最外层str1串
str1 = str1.substr(1) + str1[0]; // 轮换一个新串,最外层for执行完,刚好轮换一轮
// cout << str1 << " ";
// find函数
for(int j=0;j+str2.size()<=str1.size();j++){ //遍历当前新字符串的可能的开始位置
int k=0;
for(;j<str2.size();k++){
if(str2[k] != str1[k+j]){
break;
}
//若是循环以后没有break的情况,则
// for终止时 j是超数组边界的数
if( k == str2.size()){
puts("true");
return 0;
}
}
}
}
//要是循环遍历完,没有true,证明失败
puts("false");
return 0;
}