当前位置: 首页 > news >正文

LeetCode-面试题 05.02. 二进制数转字符串【数学,字符串,位运算】

LeetCode-面试题 05.02. 二进制数转字符串【数学,字符串,位运算】

  • 题目描述:
  • 解题思路一:简单暴力。小数点后面的二进制,now首先从0.5开始之和每次除以2。然后依次判断当前数是否大于now,是则答案加1。若等于now则可以直接返回。小于则答案加0。其实就是一个不断迭代计算小数的过程。
  • 解题思路二:不断×2,左进一位,依次判断是0还是1。
  • 解题思路三:0

题目描述:

二进制数转字符串。给定一个介于0和1之间的实数(如0.72),类型为double,打印它的二进制表达式。如果该数字无法精确地用32位以内的二进制表示,则打印“ERROR”。

示例1:

输入:0.625
输出:“0.101”

示例2:

输入:0.1
输出:“ERROR”
提示:0.1无法被二进制准确表示

提示:

32位包括输出中的 “0.” 这两位。
题目保证输入用例的小数位数最多只有 6 位

https://leetcode.cn/problems/bianry-number-to-string-lcci/description/

解题思路一:简单暴力。小数点后面的二进制,now首先从0.5开始之和每次除以2。然后依次判断当前数是否大于now,是则答案加1。若等于now则可以直接返回。小于则答案加0。其实就是一个不断迭代计算小数的过程。

class Solution {
public:string printBin(double num) {string ans="0.";double now=0.5;while(num>0){if(num>now){num-=now;ans+="1";}else if(now==num){ans+="1";return ans;}else{ans+="0";}if(now<0.0000001) return "ERROR";//题目保证输入用例的小数位数最多只有 6 位now/=2;         }return "ERROR";}
};

时间复杂度:O(1)//加上剪枝的话最多循环6次
空间复杂度:O©//字符串。

解题思路二:不断×2,左进一位,依次判断是0还是1。

当 num的十进制的小数位数最多只有 6 位时,若 num 能表示为有限位二进制小数,则二进制的小数位数同样至多为 6 位。
证明见传送门!!!

class Solution {
public:string printBin(double num) {string bin = "0.";for (int i = 0; i < 6; ++i) { // 至多循环 6 次num *= 2;if (num < 1)bin += '0';else {bin += '1';if (--num == 0)return bin;}}return "ERROR";}
};

时间复杂度:O(1)//加上剪枝的话最多循环6次
空间复杂度:O(1)//字符串。

解题思路三:0


http://www.lryc.cn/news/25518.html

相关文章:

  • pandas: 三种算法实现递归分析Excel中各列相关性
  • 【Python百日进阶-Web开发-Vue3】Day543 - Vue3 商城后台 03:登录页面初建
  • python画直方图,刻画数据分布
  • 几何学小课堂:非欧几何(广义相对论采用黎曼几何作为数学工具)【学数学关键是要学会在什么情况下,知道使用什么工具。】
  • Ubuntu配置静态IP的方法
  • 90%的人都不算会爬虫,这才是真正的技术,从0到高手的进阶
  • 排序之损失函数List-wise loss(系列3)
  • js对象和原型、原型链的关系
  • 【SpringBoot高级篇】SpringBoot集成Sharding-JDBC分库分表
  • Shell特殊字符
  • 【计算机二级python】综合题目
  • 字节直播leader面
  • PIC 单片机的时钟
  • 【数据结构】关于二叉树你所应该知道的数学秘密
  • 哈希表题目:猜数字游戏
  • 项目请求地址自动加上了本地ip的解决方式
  • Vue3 企业级项目实战:项目须知与课程约定
  • 传导EMI抑制-Π型滤波器设计
  • 如何在excel中创建斐波那契数列
  • 遮挡检测--基于角度的遮挡检测方法
  • 【luogu CF1098D】Eels(结论)
  • 【java】遍历文件夹输出所有文件的文件名与绝对路径,在windows环境
  • Window问题详解(下)
  • Kafka部署与SpringBoot集成
  • c++11 标准模板(STL)(std::unordered_set)(十三)
  • 【2023】DevOps、SRE、运维开发面试宝典之ELKStack相关面试题
  • Hive中的高阶函数(二)
  • Java集合知识点总结
  • 培训班出身的同学简历怎么做?面试要注意哪些?来自资深大厂HR的忠告
  • Hive3.1.3安装部署_最小化部署_元数据MySQL部署_Hiveserver2部署_metastore部署---大数据之Hive工作笔记0012