题解:
输入一个整数n。 输入一个字符串。
判断这个字符串能否写成 n 个 重复的字符串。。。
如果能 输出 任一种形式。 如果不能 输出 -1 。
思路:
将字母,数字处理。
26个字母记录每个字母出现的次数。
如果每个字母出现的次数不能被 n 整除 输出 -1
如果能 则输出 一种形式。。。
#include <stdio.h>
char s[1010];
int n, a[26];
int main ( ) {
scanf ( "%d%s", &n, s );
for ( int i = 0; s[i]; ++i ) ++a[s[i] - 'a'];
for ( int i = 0; i < 26; ++i ) {
if ( a[i] % n ) {
printf ( "-1\n" );
return 0;
}
}
for ( int i = 1; i <= n; ++i )
for ( int k = 0; k < 26; ++k )
for ( int j = 1; j <= a[k] / n; ++j )
printf ( "%c", 'a' + k );
printf ( "\n" );
}
本文介绍了一种用于判断字符串是否可以由n个重复子串组成的算法。通过统计字符频率并检查这些频率是否能被n整除来实现。若满足条件,则输出一种可能的重复形式;否则返回-1。
950

被折叠的 条评论
为什么被折叠?



