当前位置: 首页 > 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


相关文章:

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

LeetCode-面试题 05.02. 二进制数转字符串【数学&#xff0c;字符串&#xff0c;位运算】题目描述&#xff1a;解题思路一&#xff1a;简单暴力。小数点后面的二进制&#xff0c;now首先从0.5开始之和每次除以2。然后依次判断当前数是否大于now&#xff0c;是则答案加1。若等于…...

pandas: 三种算法实现递归分析Excel中各列相关性

目录 前言 目的 思路 代码实现 1. 循环遍历整个SDGs列&#xff0c;两两拿到数据 2. 调用pandas库函数直接进行分析 完整源码 运行效果 总结 前言 博主之前刚刚被学弟邀请参与了2023美赛&#xff0c;这也是第一次正式接触数学建模竞赛&#xff0c;现在已经提交等待结果…...

【Python百日进阶-Web开发-Vue3】Day543 - Vue3 商城后台 03:登录页面初建

文章目录 一、创建登录页面 login.vue二、登录页面响应式处理,以适应不同大小的屏幕2.1 element-plus 的layout布局中关于响应式的说明2.2 修改login.vue文件2.2.1 :lg=16 大于1200px 横排 2:12.2.2 :md=12 大于992小于1200px 横排 1:12.2.3 小于992 竖排三、引入Element-plus…...

python画直方图,刻画数据分布

先展示效果 准备一维数据 n 个数据元素计算最大值&#xff0c;最小值、均值、标准差、以及直方图分组 import numpy as np data list() for i in range(640):data.append(np.random.normal(1)) print(data)z np.histogram(data, bins64) print(list(z[0])) ### 对应 x 轴数据…...

几何学小课堂:非欧几何(广义相对论采用黎曼几何作为数学工具)【学数学关键是要学会在什么情况下,知道使用什么工具。】

文章目录 引言I 非欧几何1.1 黎曼几何1.2 共形几何1.3 罗氏几何II 黎曼几何的应用2.1 广义相对论2.2 超弦III 理解不同的几何体系的共存3.1 更扎实的欧氏几何3.2 殊途同归引言 公理有错会得到两种情况: 如果某一条自己设定的新公理和现有的公理相矛盾,那么相应的知识体系就建…...

Ubuntu配置静态IP的方法

Ubuntu配置静态IP的方法前言一、查看虚机分配的网卡IP二、查看网卡的网关IP三、配置静态IP1.配置IPv4地址2.执行netplan apply使改动生效3.配置的网卡未生效&#xff0c;修改50-cloud-init.yaml文件解决4.测试vlan网络通信总结前言 Ubuntu18.04 欧拉环境 vlan网络支持ipv6场景…...

90%的人都不算会爬虫,这才是真正的技术,从0到高手的进阶

很多人以为学会了urlib模块和xpath等几个解析库&#xff0c;学了Selenium就会算精通爬虫了&#xff0c;但到外面想靠爬虫技术接点私活&#xff0c;才发现寸步难行。 龙叔我做了近20年的程序员&#xff0c;今天就告诉你&#xff0c;真正的爬虫高手应该学哪些东西&#xff0c;就…...

排序之损失函数List-wise loss(系列3)

排序系列篇&#xff1a; 排序之指标集锦(系列1)原创 排序之损失函数pair-wise loss(系列2)排序之损失函数List-wise loss(系列3) 最早的关于list-wise的文章发表在Learning to Rank: From Pairwise Approach to Listwise Approach中&#xff0c;后面陆陆续续出了各种变形&#…...

js对象和原型、原型链的关系

JS的原型、原型链一直是比较难理解的内容&#xff0c;不少初学者甚至有一定经验的老鸟都不一定能完全说清楚&#xff0c;更多的"很可能"是一知半解&#xff0c;而这部分内容又是JS的核心内容&#xff0c;想要技术进阶的话肯定不能对这个概念一知半解&#xff0c;碰到…...

【SpringBoot高级篇】SpringBoot集成Sharding-JDBC分库分表

【SpringBoot高级篇】SpringBoot集成Sharding-JDBC分库分表Apache ShardingSphere分库分表分库分表的方式垂直切分垂直分表垂直分库水平切分水平分库水平分表分库分表带来的问题分库分表中间件Sharding-JDBCsharding-jdbc实现水平分表sharding-jdbc实现水平分库sharding-jdbc实…...

Shell特殊字符

shell语言&#xff0c;一些字符是有特殊意义的。 根据作用分为几种特殊符号 一、空白 shell调用函数&#xff0c;不像c语言那样用把参数放到括号里&#xff0c;用逗号分隔。而是用空格作为参数之间&#xff0c;参数与函数名之间的分隔符。 换行符也是特殊字符。换行符用作一条命…...

【计算机二级python】综合题目

计算机二级python真题 文章目录计算机二级python真题一、德国工业战略规划二、德国工业战略规划 第一问三、德国工业战略规划 第二问一、德国工业战略规划 描述:在右侧答题模板中修改代码&#xff0c;删除代码中的横线&#xff0c;填写代码&#xff0c;完成考试答案。‪‬‪‬…...

字节直播leader面

设计评论系统&#xff08;缓存怎么做&#xff09; mysql是否有主从延迟&#xff0c;如何解决 mysql有主从延迟 主从延迟主要因为mysql主从同步的机制&#xff0c;mysql有三种同步机制 同步复制&#xff1a;事务线程等待所有从库复制成功响应异步复制&#xff1a;事务不等待…...

PIC 单片机的时钟

注意&#xff1a;本文的内容无法保证绝对精确&#xff0c;后续可能会做改动&#xff0c;只是自己的笔记。这里的资料均源自数据手册本身。PIC18系列单片机的参考时钟可以选择三个基础时钟源&#xff1a;Primary Clock, OSC1 or OSC2,Secondary Clock,Inner clock.时钟源分为两个…...

【数据结构】关于二叉树你所应该知道的数学秘密

目录 1.什么是二叉树&#xff08;可以跳过 目录跳转&#xff09; 2.特殊的二叉树&#xff08;满二叉树/完全二叉树&#xff09; 2.1 基础知识 2.2 满二叉树 2.3 完全二叉树 3.二叉树的数学奥秘&#xff08;主体&#xff09; 3.1 高度与节点个数 3.2* 度 4.运用二叉树的…...

哈希表题目:猜数字游戏

文章目录题目标题和出处难度题目描述要求示例数据范围解法一思路和算法代码复杂度分析解法二思路和算法代码复杂度分析题目 标题和出处 标题&#xff1a;猜数字游戏 出处&#xff1a;299. 猜数字游戏 难度 4 级 题目描述 要求 你在和朋友一起玩猜数字&#xff08;Bulls…...

项目请求地址自动加上了本地ip的解决方式

一般情况下来说都是一些粗心大意的问题导致的 场景一&#xff1a;少加了/ 场景二&#xff1a;前后多加了空格 场景三&#xff1a;拼接地址错误![...

Vue3 企业级项目实战:项目须知与课程约定

本节内容很重要&#xff0c;希望大家能够耐心看完。 Vue3 企业级项目实战 - 程序员十三 - 掘金小册Vue3 Element Plus Spring Boot 企业级项目开发&#xff0c;升职加薪&#xff0c;快人一步。。「Vue3 企业级项目实战」由程序员十三撰写&#xff0c;2744人购买https://s.ju…...

传导EMI抑制-Π型滤波器设计

1 传导电磁干扰简介 在开关电源中&#xff0c;开关管周期性的通断会产生周期性的电流突变&#xff08;di/dt&#xff09;和电压突变(dv/dt)&#xff0c;周期性的电流变化和电压变化则会导致电磁干扰的产生。 图1所示为Buck电路的电流变化&#xff0c;在Buck电路中上管电流和下…...

如何在excel中创建斐波那契数列

斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列&#xff0c;因数学家莱昂纳多斐波那契&#xff08;Leonardo Fibonacci&#xff09;以兔子繁殖为例子而引入&#xff0c;故又称为“兔子数列”&#xff0c;指的是这样一个数列&#xff1a;…...

‌古星图导航测试:波利尼西亚航海术的AI复现‌

跨越千年的航海智慧与现代测试的碰撞在科技高度发达的今天&#xff0c;GPS、北斗等卫星导航系统已成为我们出行、航海、航空等领域不可或缺的工具。然而&#xff0c;在数千年前&#xff0c;太平洋上的波利尼西亚人却凭借着对星空的深刻理解和独特的航海技术&#xff0c;在广袤无…...

【Qt串口实战】硬件升级后readyRead信号丢失的排查与修复

1. 问题现象&#xff1a;硬件升级后readyRead信号神秘消失 那天早上刚到公司&#xff0c;硬件组的同事兴冲冲地跑过来告诉我&#xff1a;"老王&#xff0c;我们给设备升级了最新固件&#xff0c;性能提升30%&#xff01;"我心想这是好事啊&#xff0c;结果打开调试软…...

八大排序算法-选择排序

介绍选择排序:每一次从待排序序列中找出最小值和待排序序列的第一个值进行交换&#xff0c;重复这个过程&#xff0c;直到待排序序列没有值选择排序&#xff1a;时间复杂度O(n^2) 空间复杂度O(1) 稳定性&#xff1a;不稳定 难度范围&#xff1a;简单可以设置一个变量来保存最小…...

考研高数救星:用Python的SymPy库5分钟搞定洛必达法则极限题

考研高数救星&#xff1a;用Python的SymPy库5分钟搞定洛必达法则极限题 数学分析中&#xff0c;洛必达法则堪称求解极限问题的"瑞士军刀"&#xff0c;尤其对于0/0型和∞/∞型未定式。但传统手工求解往往需要反复求导验证&#xff0c;既耗时又容易出错。如今&#xff…...

避坑指南:STM32F407的ADC多通道采样,你的数据顺序真的对了吗?

STM32F407多通道ADC采样数据错位排查手册 在嵌入式开发中&#xff0c;ADC多通道采样是常见需求&#xff0c;但数据顺序错乱问题却让不少工程师深夜加班。上周有位同行发来求助&#xff1a;他的四通道温度监测系统运行两周后&#xff0c;突然出现通道数据交叉污染&#xff0c;导…...

Git 进阶实战:如何优雅地从“被污染”的工作区中拯救代码

这是一篇为你整理的通用技术文档,旨在解决开发中常见的“Git 仓库被编译产物污染”及“提交异常”问题。 Git 进阶实战:如何优雅地从“被污染”的工作区中拯救代码 在 Android 系统开发或大型工程项目中,我们经常遇到一个头疼的问题:执行 git status 时,发现有几十甚至上…...

如何解决Noah-MP陆面模型编译与配置中的三大技术挑战

如何解决Noah-MP陆面模型编译与配置中的三大技术挑战 【免费下载链接】NoahMP 项目地址: https://gitcode.com/gh_mirrors/no/NoahMP Noah-MP&#xff08;Noah with Multi-Parameterization options&#xff09;作为先进的陆面过程模型&#xff0c;在水文循环模拟、能量…...

第一章 微信小程序概述与开发准备

第一章 微信小程序概述与开发准备 &#x1f4da; 系列教程&#xff1a;微信小程序投票系统完整开发 &#x1f517; 上一章&#xff1a;无 &#x1f517; 下一章&#xff1a;第二章 - 小程序目录结构与核心文件详解 1.1 什么是微信小程序 微信小程序&#xff08;Mini Program&a…...

AI超级计算机架构演进与性能优化解析

1. AI超级计算机的技术架构演进AI超级计算机的核心架构在过去六年发生了显著变化。2019年主流系统如Summit主要采用NVIDIA V100 GPU&#xff0c;而到2025年&#xff0c;xAI的Colossus已升级到H100/H200混合架构。这种演进主要体现在三个维度&#xff1a;1.1 计算单元设计原理现…...

ThinkPad嵌入式控制器深度解析:TPFanCtrl2散热优化实践方案

ThinkPad嵌入式控制器深度解析&#xff1a;TPFanCtrl2散热优化实践方案 【免费下载链接】TPFanCtrl2 ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11 项目地址: https://gitcode.com/gh_mirrors/tp/TPFanCtrl2 在移动工作站领域&#xff0c;ThinkPad以其卓越…...