生活随笔
收集整理的這篇文章主要介紹了
【LeetCode笔记 - 每日一题】423. 从英文中重建数字(Java、字符串、偏思路)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
文章目錄
題目描述
- 看了題目以后想到啥?
- 字符數(shù)量統(tǒng)計(jì)
- 銀行家算法逐個(gè)拆解
- 建立數(shù)字 - 字符串的全局映射
思路 && 代碼
- 抄答案了,采取了評論區(qū)三葉dalao的寫法(不得不說,人家的處理寫法是真的優(yōu)雅),學(xué)習(xí)學(xué)習(xí)。
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
);}
}
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
);}
}
總結(jié)
以上是生活随笔為你收集整理的【LeetCode笔记 - 每日一题】423. 从英文中重建数字(Java、字符串、偏思路)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。