这道题可以参考一下哦,注意数组不能开太小,否则就会爆掉!我就试过一次,太坑了!
代码如下:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
int len,n,i,j;
int b[35];
char s[100010];
while(scanf("%d",&n)!=EOF)
{
scanf("%s",s);
len=strlen(s);
for(i=0; i<len; i++)
b[s[i]-'a']++;
int flag=0;
for(i=0; i<30; i++)
{
if(b[i]!=0)
{
if(b[i]%n!=0)
{
flag=1;
break;
}
}
}
if(flag==1)
{
printf("-1\n");
// return 0;
}
else
{
for(i=0; i<n; i++)
{
for(j=0; j<30; j++)
{
if(b[j]!=0)
for(int p=0; p<b[j]/n; p++)
printf("%c",j+'a');
}
}
printf("\n");
}
}
return 0;
}