负二进制转换【LC1107】
给你一个整数
n
,以二进制字符串的形式返回该整数的 **负二进制(base -2
)**表示。**注意,**除非字符串就是
"0"
,否则返回的字符串中不能含有前导零。
18分钟 挺满足了
class Solution { public String baseNeg2(int n) { if (n == 0) return "0"; StringBuilder sb = new StringBuilder(); int cnt = 0; while (n > 0 || cnt > 0){ int num = n & 1; n = (n >> 1); int add = (num + cnt) % 2; if (add == 1 && sb.length() % 2 == 1){ cnt++; } sb.append(add); cnt = (num + cnt) / 2; } return sb.reverse().toString(); } }