题目描述:
输入描述:
一行字符串 s ,代表黑暗咒语
输出描述:
一个字符串 t ,表示满足条件的最长净化咒语
备注:
思路:
这道题数据范围比较小(为1e5),直接根据题意进行暴力模拟就可以了。这道题在codforces上有类似题目,我在这里贴出来供大家进一步思考。注:codeforces上的这道题不能用暴力模拟,否则会TLE。
传送门:http://codeforces.com/problemset/problem/126/B
参考代码如下:
#include<iostream> #include<string> using namespace std; int main() { ios::sync_with_stdio(false); string s; cin >> s; int len = s.size(); for (int i = len;i >= 1;i--) { string s1 = s.substr(0, i); string s2 = s.substr(len - i, i); if (s1 == s2) { for (int j = 1;j < len - i;j++) { string s3 = s.substr(j, i); if (s1 == s3) { cout << s3 << endl; return 0;//出现过一次就可以了,这时要立即输出 } } } } return 0; }