using namespace std;
int main(){
string str;
while(cin >> str,str !="."){
for(int i = 1;i<=str.size();i++){
int y = str.size()%i;
// cout << str.size() << endl;
if(y == 0){
int n = str.size()/i;
string res="";
string s = str.substr(0,i);
for(int j = 0;j< n;j++) res+=s;
// cout << res <
if(res == str){
cout << n << endl;
break;
}
}
}
}
system("pause");
return 0;
}
超时
在CSDN搜索
AC
没过
用string,substr效率低下,直接定义char数组,用游标逐个匹配
#include <iostream>
using namespace std;
int main()
{
char s1[1000],s2[1000];
cin>>s1>>s2;
int i=0,j=0,k=0;
while(s1[i] != '\0')
{
j=0;
k = i;
while(s1[k] != '\0' && s2[j] != '\0')
{
if(s1[k] != s2[j])
break;
k++;
j++;
}
if(s2[j] == '\0')
break;
i++;
}
if(s1[i] == '\0')
cout<<"no";
else
cout<<"yes";
return 0;
}