AcWing 777. 字符串乘方
原题链接
困难
作者:
HelloZz
,
2021-01-05 14:43:19
,
所有人可见
,
阅读 296
算法1
(暴力枚举) $O(n^2)$
时间复杂度
参考文献
java 代码
import java.util.*;
class Main{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
while(true){
String str = in.next();
if(str.equals(".")){
break;
}
int len = str.length();
for(int n = len ; n > 0 ; n--){
if(len % n == 0){
int m = len / n;
String s = str.substring(0,m);
StringBuilder sb = new StringBuilder();
for(int i = 0 ; i < n ; i++){
sb.append(s);
}
if(sb.toString().equals(str)){
System.out.println(n);
break;
}
}
}
}
}
}
算法2
(暴力枚举) $O(n^2)$
时间复杂度
参考文献
C++ 代码
#include<iostream>
using namespace std;
int main(){
string str;
while(cin >> str , str != "."){
int len = str.size();
for(int n = len ; n > 0 ; n--){
if(len % n == 0){
int m = len / n;
string s = str.substr(0,m);
string t;
for(int i = 0 ; i < n ; i++){
t += s;
}
if(t == str){
cout << n << endl;
break;
}
}
}
}
return 0;
}