【LeetCode】每日一题 - 负二进制转化

负二进制转换

给你一个整数 n ,以二进制字符串的形式返回该整数的 负二进制(base -2表示。

注意,除非字符串就是 "0",否则返回的字符串中不能含有前导零。

示例 1:

输入:n = 2
输出:"110"
解释:(-2)2 + (-2)1 = 2

示例 2:

输入:n = 3
输出:"111"
解释:(-2)2 + (-2)1 + (-2)0 = 3

示例 3:

输入:n = 4
输出:"100"
解释:(-2)2 = 4

提示:

  • 0 <= n <= 109

思路:将一个十进制的数 n 转化为任意 x 进制都可以使用这样的思路。

第一步:先得到转化为进制结果的最后一位 t :n % x (但如果得到的最后一位是负数的话,需要根据语言特性将其转化为正数),然后将最后一位添加到目标字符串中,然后将这个最后一位 t 在 n 中减去。

第二步:将这个十进制数按 x 进制的规则右移一位:n /= x,然后重复得到最后一位并添加的操作,最终可以得到一个字符串。

第三步:因为每次得到的都是理论上的最后一位,所以最后需要将字符串逆置,就得到了最终答案!

力扣代码:

class Solution {
public:
    string baseNeg2(int n) {
        if(n == 0) return "0";
        int x = -2;
        string s;
        while (n) 
        {
            if (n % x == 0) // 最后一位数是 0
                s += "0";
            else 
            {
                // 将最后一位减去, 因为 x 进制的最后一位在权重上和十进制是一样
                n -= 1;  
                s += "1";
            }
            n /= x; // 将 n 右移一位
        }
        reverse(s.begin(), s.end()); // 逆序字符串
        return s;
    }
};

相关推荐

  1. LeetCode每日 - 二进制转化

    2024-04-28 14:06:02       13 阅读
  2. 2024.4.28力扣每日——二进制转换

    2024-04-28 14:06:02       12 阅读
  3. LeetCode每日】2864. 最大二进制奇数

    2024-04-28 14:06:02       22 阅读
  4. 二进制转换

    2024-04-28 14:06:02       17 阅读
  5. 每日-二进制求和

    2024-04-28 14:06:02       21 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-28 14:06:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-28 14:06:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-28 14:06:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-28 14:06:02       20 阅读

热门阅读

  1. android 获取手机号码

    2024-04-28 14:06:02       13 阅读
  2. android 内部序列化对象

    2024-04-28 14:06:02       12 阅读
  3. springbean的加载过程以及应用场景

    2024-04-28 14:06:02       14 阅读
  4. Python构建学生信息管理系统:前端页面开发

    2024-04-28 14:06:02       17 阅读
  5. leetcode58 最后一个单词的长度

    2024-04-28 14:06:02       14 阅读
  6. MySQL商城数据表(50-59)

    2024-04-28 14:06:02       16 阅读
  7. fofa 是一个什么样的工具

    2024-04-28 14:06:02       15 阅读
  8. Android 开机流程

    2024-04-28 14:06:02       14 阅读
  9. 笨蛋学C++【C++基础第五弹-C++Demo练习题】

    2024-04-28 14:06:02       11 阅读
  10. 规范化-RESTful URL

    2024-04-28 14:06:02       15 阅读
  11. 企微魔盒V15.6独立版源码+搭建环境教程

    2024-04-28 14:06:02       16 阅读
  12. 情绪:本来无一物,何处惹尘埃

    2024-04-28 14:06:02       15 阅读