Hexspeak

给一个用字符串表示的数, 返回一个十六进制的数, 只包含字母. 这个题看眼input, 一定要用long. 剩下就是常规

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();
    }
}