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

leetcode 67. 二进制求和

  1. 二进制求和
    已解答
    简单
    相关标签
    相关企业
    给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。

示例 1:

输入:a = “11”, b = “1”
输出:“100”
示例 2:

输入:a = “1010”, b = “1011”
输出:“10101”

提示:

1 <= a.length, b.length <= 104
a 和 b 仅由字符 ‘0’ 或 ‘1’ 组成
字符串如果不是 “0” ,就不含前导零

解题思路

将两字符串倒置,依次进行相加,遇到二进位。

class Solution {
public:string addBinary(string a, string b) {string answer;reverse(a.begin(),a.end());reverse(b.begin(),b.end());int n = max(a.size(),b.size());int carry = 0; //进位值for(size_t i=0;i<n;i++){/*根据当前位置 i 的字符值来更新 carry(进位)如果超出字符串的长度填充0,如果没超出等于一就返回1,不等于1就是0*/carry += ( i<a.size() ? (a.at(i)=='1') : 0 );carry += (i < b.size() ? (b.at(i)=='1') : 0 );answer.push_back( (carry % 2) ? '1' : '0');carry /=  2; /* carry /=  2; 这一操作更新 carry,决定是否有进位需要带到下一位的计算中。例如,当 carry 为 2 或 3 时,需要产生进位 1,因此 carry /= 2 的结果为 1,即将进位传递给下一位。*/}if(carry){//如果还有进位,插入1.answer.push_back('1');}reverse(answer.begin(),answer.end());//-逆序return answer;}
};
http://www.lryc.cn/news/418711.html

相关文章:

  • 【C++ 面试 - 基础题】每日 3 题(一)
  • 【动态规划】1、不同路径II+2、三角形最小路径和
  • JavaEE-多线程编程单例模式
  • RHCA III之路---EX436-6
  • Vuex模块化 深入浅出超详细
  • 细说MCU检测按键输入的外部中断和修改HAL_GPIO_EXTI_IRQHandler() 的实现方法
  • 昂科烧录器支持XHSC小华半导体的32位微控制器HC32F005C6P
  • 根据 IP 地址配置子网示例(下挂 hub 接不同 vlan 终端)
  • Flink-DataWorks第四部分:数据同步(第60天)
  • go post请求,参数是raw json格式,response是固定结构。
  • 国产开源大模型都有哪些?
  • 基于Hadoop的超市进货推荐系统设计与实现【springboot案例项目】
  • ChatGPT能从这几个方面提升学术论文质量
  • Python3的安装及基础指令
  • 使用Spring与JDK动态代理实现事务管理
  • 服务器硬件及RAID配置
  • 【经验总结】ShardingSphere5.2.1 + Springboot 快速开始
  • 基于Golang实现Kubernetes边车模式
  • TCP 通信全流程分析:从连接建立到数据传输的深度探索
  • 4、提取H264码流中nalu
  • 哈佛大学单细胞课程|笔记汇总 (二)
  • java中抽象类和接口的区别
  • Spring Boot - 在Spring Boot中实现灵活的API版本控制(下)_ 封装场景启动器Starter
  • EasyCVR视频转码:T3视频平台不支持GB28181协议,应该如何实现与视频联网平台的对接与视频共享呢?
  • Spring统一处理请求响应与异常
  • SqlServer公用表表达式 (CTE) WITH common_table_expression
  • 常见中间件漏洞
  • elasticsearch的学习(二):Java api操作elasticsearch
  • docker 部署 ElasticSearch;Kibana
  • k8s使用kustomize来部署应用