
java
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n,x;
n = scan.nextInt();
x = scan.nextInt();
String res1;
res1 = scan.next();
char res[] = res1.toCharArray();
Arrays.sort(res);
//第一种情况:糖果是aaaaaa...这种类型的(一个种类的)
if(res[0]==res[n-1]) {
int n1 = n/x;
for(int i = 0;i<n1;i++) {
System.out.print(res[i]);
}
n1 = n%x;//看看有没有剩余的
if(n1!=0)
System.out.print(res[0]);
// int count = n / x + (n % x == 0 ? 0 : 1);
// for (int i = 0; i < count; i++) System.out.print(res[i]);
}
//第二种情况 :糖果是假设aaabbbccc x=1(x小于首字母的个数)
else if(res[0]==res[x-1]) {// aaabcdefg 三个人 这种必须是 a a abcdefg 如果剩下的这些(bcdefg)让三个人平分的话,就不能保证最小的是ab..打头的了
for(int i = x-1;i<n;i++) {
System.out.print(res[i]);
}
}
//第三种情况 :糖果是假设abbbccc x=5(x小于首字母的个数) abceeee 3
else if(res[0]!=res[x-1]){//如abceeee 3 这个例子, a 打头给一个人 b 打头给一个人, c 给一个人 剩下eeee这些分给a 、b打头的这俩,最大的还是c
System.out.print(res[x-1]);
}
}
代码虽然能通过100%测试用例(20个)但是有一种情况不能处理
这种情况应该输出ab就是三个都一样,
把第二部分代码修改一下就好了,加一种判断这种类型:
好了完整代码是这样的
java
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n,x;
n = scan.nextInt();
x = scan.nextInt();
String res1;
res1 = scan.next();
char res[] = res1.toCharArray();
Arrays.sort(res);
//第一种情况:糖果是aaaaaa...这种类型的(一个种类的)
if(res[0]==res[n-1]) {
int n1 = n/x;
for(int i = 0;i<n1;i++) {
System.out.print(res[i]);
}
n1 = n%x;//看看有没有剩余的
if(n1!=0)
System.out.print(res[0]);
// int count = n / x + (n % x == 0 ? 0 : 1);
// for (int i = 0; i < count; i++) System.out.print(res[i]);
}
//第二种情况 :糖果是假设aaabbbccc x=1(x小于首字母的个数)
else if(res[0]==res[x-1]) {
// aaabcdefg 三个人 这种必须是 a a abcdefg 如果剩下的这些(bcdefg)让三个人平分的话,就不能保证最小的是ab..打头的了
int flag = 0;
if(n%x==0) {
flag = 1;
for(int i = 1;(x*(i+1)-1)<n;i++) {
if(res[x*i]!=res[x*(i+1)-1]) {
flag = 0;
break;
}
}
}
if(flag==0) {
for(int i = x-1;i<n;i++) {
System.out.print(res[i]);
} }
else {
for(int i =0;i<n;i=i+x) {
System.out.print(res[i]);
}
}
}
//第三种情况 :糖果是假设abbbccc x=5(x小于首字母的个数) abceeee 3
else if(res[0]!=res[x-1]){//如abceeee 3 这个例子, a 打头给一个人 b 打头给一个人, c 给一个人 剩下eeee这些分给a 、b打头的这俩,最大的还是c
System.out.print(res[x-1]);
}
}
进行调试:可以满足这种情况了