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

力扣67. 二进制求和

给你两个二进制字符串 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 res;int i = a.size()-1, j = b.size()-1;int jin = 0, yu = 0;while(i >= 0 && j >= 0){yu = ((a[i]-'0') + (b[j]-'0') + jin) % 2;if(yu == 1) res = '1' + res;else res = '0' + res;jin = ((a[i]-'0') + (b[j]-'0') + jin) / 2;i--;j--;}while(i >= 0){yu = ((a[i]-'0') + jin) % 2;if(yu == 1) res = '1' + res;else res = '0' + res;jin = ((a[i]-'0') + jin) / 2;i--;}while(j >= 0){yu = ((b[j]-'0') + jin) % 2;if(yu == 1) res = '1' + res;else res = '0' + res;jin = ((b[j]-'0') + jin) / 2;j--;}if(jin == 1) res = '1' + res;return res;}
};

解题思路:

(1)使用模2加分进行求解,进位表示为 jin,余数表示为 yu。

(2)将每个字符串从尾部开始遍历,与 jin 相加后模2,余数 yu 即加入 res 的头部。

(3)接着,判断较长字符串剩下的字符。

(4)最后,根据进位 jin 再做一次判断。

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

相关文章:

  • 网络安全中的 SOC 是什么?
  • 16、鸿蒙学习——Visibility与(if...else)该如何选择
  • PH热榜 | 2024-12-05
  • Qt Chart 模块化封装曲线图
  • 【AI系统】MobileFormer
  • python数据分析之爬虫基础:解析
  • uniapp中导入uview或者uview plus
  • 【LeetCode】122.买卖股票的最佳时机II
  • openGauss开源数据库实战十九
  • 恶补英语初级第18天,《询问他人的喜好(上)》
  • centos 报 ping: www.baidu.com: Name or service not known
  • Python:使用随机森林分类器进行模型评估:ROC 曲线与 AUC 指标计算
  • 数据库表约束完全指南:提升数据完整性和准确性
  • 【JavaEE】多线程(6)
  • BERT和RoBERTa;双向表示与单向的简单理解
  • Pytorch使用手册-计算机视觉迁移学习教程(专题十三)
  • Jackson - Java对象与JSON相互转换
  • 怎麼解決路由器IP地址衝突?
  • 趣味数学 2.3.7 | 完全免费,无注册登录,简约纯净
  • Oracle ASM特性介绍和增删盘操作
  • 深度优先搜索迷宫路径
  • 多媒体技术的 发展阶段----高中信息技术教资面试
  • 行为型设计模式之《责任链模式》实践
  • 中酱黑松露手工古法酱油,邂逅独特 “酱油红”
  • Java NIO channel
  • 智能交通(8)——腾讯开悟智能交通信号灯调度赛道
  • ip所属地址是什么意思?怎么改ip地址归属地
  • 攻防世界 ctf刷题 新手区1-10
  • Node做一个自动删除指定文件和文件夹工具
  • 陈若尧新歌《一来二去》陆续登陆全球音乐平台