2. 字符串乘方
给定两个字符串 aa 和 bb,我们定义 a×ba×b 为他们的连接。
例如,如果 a=a=abc 而 b=b=def, 则 a×b=a×b=abcdef。
如果我们将连接考虑成乘法,一个非负整数的乘方将用一种通常的方式定义:a0=a0=``(空字符串),a(n+1)=a×(an)a(n+1)=a×(an)。
输入格式
输入包含多组测试样例,每组测试样例占一行。
每组样例包含一个字符串 ss,ss 的长度不超过 100100,且不包含空格。
最后的测试样例后面将是一个点号作为一行。
输出格式
对于每一个 ss,你需要输出最大的 nn,使得存在一个字符串 aa,让 s=ans=an。
输入样例:
abcd aaaa ababab .
输出样例:
1 4 3
#include using namespace std;int main()
{string str;while (cin >> str, str != "."){int len = str.size();for (int n = len; n; n -- )if (len % n == 0){int m = len / n;string s = str.substr(0, m);string r;for (int i = 0; i < n; i ++ ) r += s;if (r == str){cout << n << endl;break;}}}return 0;
}
#include
#include
using namespace std;
int main(){string s;while(cin>>s,s!="."){for(int i=s.size();i>0;i--){if(s.size()%i==0){string a=s.substr(0,s.size()/i),b={};for(int j=0;j<i;j++)b+=a;if(b==s){cout<<i<<endl;break;}}}}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
