Description
有一字符串,是通过一个最基本的字符串不停复制拼接而成的。
例如:
1212121212121212
是通过“12”不停的复制变成的。
第一次 12
第二次 1212
第三次 12121212
第四次 1212121212121212
现在,给你这样一串字符串,希望你能找到合成这样一字符串的最短的基本字符串。
Input
有多行输入,每一行给出上述的一字符串(长度不超过1000)。
Output
对于每个字符串,输出最基本的一个字符串。
Sample Input
1212121212121212
Sample Output
12#include <iostream> #include <cstdio> using namespace std; int main(){ string s; while(cin>>s){ while(s.substr(0,s.size()/2) == s.substr(s.size()/2,s.size()/2)){ s = s.substr(0,s.size()/2); //这一步不能漏,因为可能会陷入死循环,导致超时 if(s.size() == 1){ break; } } cout<<s<<endl; //printf("%s\n",s); } return 0; }