Hexspeak
给一个用字符串表示的数, 返回一个十六进制的数, 只包含字母. 这个题看眼input, 一定要用long. 剩下就是常规
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
class Solution { public String toHexspeak(String num) { Map<Long, Character> map = new HashMap<>(); map.put(0l, 'O'); map.put(1l, 'I'); map.put(10l, 'A'); map.put(11l, 'B'); map.put(12l, 'C'); map.put(13l, 'D'); map.put(14l, 'E'); map.put(15l, 'F'); Long n = Long.parseLong(num); StringBuilder sb = new StringBuilder(); while(n > 0) { if(map.containsKey(n % 16)){ sb.append(map.get(n % 16)); n /= 16; } else{ return "ERROR"; } } return sb.reverse().toString(); } } |