旅游英文网站 建设需求,WordPress首页id,app下载安卓软件,深圳企业网站哪家好文章目录题目描述思路 代码题目描述
看了题目以后想到啥#xff1f; 字符数量统计银行家算法逐个拆解建立数字 - 字符串的全局映射
思路 代码
抄答案了#xff0c;采取了评论区三叶dalao的写法#xff08;不得不说#xff0c;人家的处理写法是真…
文章目录题目描述思路 代码题目描述
看了题目以后想到啥 字符数量统计银行家算法逐个拆解建立数字 - 字符串的全局映射
思路 代码
抄答案了采取了评论区三叶dalao的写法不得不说人家的处理写法是真的优雅学习学习。
class Solution {static String[] ss new String[]{zero, one, two, three, four, five, six, seven, eight, nine};static int[] priority new int[]{0, 8, 6, 3, 2, 7, 5, 9, 4, 1};public String originalDigits(String s) { // part 1 字符数量统计int[] counts new int[26];for(char c : s.toCharArray()) counts[c - a];// part 2获取值这里的嵌套循环处理很棒StringBuilder sb new StringBuilder();for(int i : priority) { // 按照0, 8, 6, 3, 2, 7, 5, 9, 4, 1的序列来int k Integer.MAX_VALUE;for(char c : ss[i].toCharArray()) k Math.min(k, counts[c - a]); // 获取当前最多的可行值for(char c : ss[i].toCharArray()) counts[c - a] - k; // 逐个减去可行值while(k-- 0) sb.append(i); // 添加对应个数的 ans}// final: 排序、格式处理char[] cs sb.toString().toCharArray();Arrays.sort(cs);return String.valueOf(cs);}
}无注释版
class Solution {static String[] ss new String[]{zero, one, two, three, four, five, six, seven, eight, nine};static int[] priority new int[]{0, 8, 6, 3, 2, 7, 5, 9, 4, 1};public String originalDigits(String s) { int[] counts new int[26];for(char c : s.toCharArray()) counts[c - a];StringBuilder sb new StringBuilder();for(int i : priority) { int k Integer.MAX_VALUE;for(char c : ss[i].toCharArray()) k Math.min(k, counts[c - a]); for(char c : ss[i].toCharArray()) counts[c - a] - k; while(k-- 0) sb.append(i); }char[] cs sb.toString().toCharArray();Arrays.sort(cs);return String.valueOf(cs);}
}