import java.util.*; import java.math.BigInteger; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 返回最大和的字符串 * @param x string字符串 即题目描述中所给字符串 * @param k int整型 即题目描述中所给的k * @return string字符串 */ public String Maxsumforknumers (String x, int k) { // write code here String a=""; char [] xx=x.toCharArray(); Arrays.sort(xx); BigInteger bi=new BigInteger("0"); // System.out.println(xx); for(int i=xx.length-1;i>=0;i--) { if(i>k-1) a+=xx[i]; else if(i==k-1) { a+=xx[i]; BigInteger bi2=new BigInteger(a); bi=bi.add(bi2); } else { BigInteger bi3=new BigInteger(xx[i]+""); bi=bi.add(bi3); } } return bi.toString(); } }
1.将字符串转为char数组
2.用Arrays.sort()进行排序,现在最大的数都排在后面
3.要k个数相加和最大,则先从后往前取到第k-1个数,再将剩下的数一个一个加起来,直接用大整数相加BigInteger.add(),方便快捷