题目
《005》来源:微软笔试,力扣2384
给定一个字符串s,只含有0~9这些字符。你可以使用来自s中的数字,目的是拼出一个最大的回文数使用数字的个数,不能超过s里含有的个数
比如:
39878,能拼出的最大回文数是: 898
00900,能拼出的最大回文数是:9
54321,能拼出的最大回文数是: 5
输入描述:
字符串s
输出描述:
输出一个字符串,表示最大回文数
提示:
N是字符串长度,1 <= N <=100000
思路以及解答(一)
统计每个数字出现次数,将大的数放在两边,小点的数依次往中间放,同时每次放都把计数-2,最后把剩下的单个数字中最大的数字放在中间。没有剩余的数字直接返回。
全0直接返回“0”.
垃圾代码
final static int CHAR_COUNTS = 10;
public static String largestPalindromic(String num) {
//(可以利用str.charAt()返回字符串中的字符)
int[] counts = new int[CHAR_COUNTS]; //存储字符计数,counts[c-'0'] = 字符c出现的次数
for(int i=0;i<num.length();i++) {
counts[num.charAt(i)-