AcWing 776. 字符串移位包含问题
原题链接
困难
作者:
citrus_7
,
2021-02-06 15:59:05
,
所有人可见
,
阅读 242
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
string a, b;
cin >> a >> b;
if (a.size() < b.size()) swap(a, b);
bool is_zc = false;
for (int i = 0; i < a.size(); i ++ )
{
int t = a[0];
for (int j = 0; j < a.size() - 1; j ++ )
a[j] = a[j + 1];
a[a.size() - 1] = t;
for (int j = 0; j + b.size() <= a.size(); j ++ )
{
int k;
for (k = 0; k < b.size(); k ++ )
if (a[j + k] != b[k])
break;
if (k == b.size()) is_zc = true;
}
}
if (is_zc) cout << "true" << endl;
else cout << "false" << endl;
return 0;
}
//(最佳)
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
string a, b;
cin >> a >> b;
if (a.size() < b.size()) swap(a, b);
for (int i = 0; i < a.size(); i ++ )
{
a = a.substr(1) + a[0];
for (int j = 0; j + b.size() <= a.size(); j ++ )
{
int k;
for (k = 0; k < b.size(); k ++ )
if (a[j + k] != b[k])
break;
if (k == b.size())
{
puts("true");
return 0;
}
}
}
puts("false");
return 0;
}
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
string a, b;
cin >> a >> b;
if (a.size() < b.size()) swap(a, b);
bool is_zc = false;
for (int i = 0; i < a.size(); i ++ )
{
int t = a[0];
for (int j = 0; j < a.size() - 1; j ++ )
a[j] = a[j + 1];
a[a.size() - 1] = t;
for (int j = 0; j < a.size(); j ++ )
{
int k = 0;
while (k < b.size() && j + k < a.size() && a[j + k] == b[k]) k ++ ;
if (k == b.size()) is_zc = true;
}
}
if (is_zc) cout << "true" << endl;
else cout << "false" << endl;
return 0;
}