题解 | #字符串出现次数的TopK问题#
进制转换
http://www.nowcoder.com/practice/2cc32b88fff94d7e8fd458b8c7b25ec1
public String solve (int M, int N){ if (M < 0){ return new StringBuilder(getString(-M,N)).reverse().append('-').reverse().toString(); }else { return getString(M, N); } } public String getString(int M, int N){ StringBuilder sb = new StringBuilder(); Map<Integer, Character> map = new HashMap<>(); map.put(10, 'A'); map.put(11,'B'); map.put(12, 'C'); map.put(13, 'D'); map.put(14, 'E'); map.put(15, 'F'); int re = 0; while (M > N){ re = M % N; if (re > 10){ sb.append(map.get(re)); }else { sb.append(Integer.toString(re)); } M = M / N; } if (M > 10){ sb.append(map.get(M)); }else { sb.append(Integer.toString(M)); } return sb.reverse().toString(); }