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

【力扣LeetCode】 67二进制求和

- 第 127 篇 -
Date: 2025 - 09 - 23
Author: 郑龙浩(仟墨)

文章目录

  • 【力扣LeetCode】 67二进制求和
  • 题目描述
  • 思路
  • 代码

【力扣LeetCode】 67二进制求和

题目描述

给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。

思路

1 将两个字符串逆序存储到int类型的vector中(记得两个int的vector要统一长度,方便计算)
2 进行高精度加法求和运算,只是这次是二进制,%2或/2
3 将vector转换为string,并且是逆序存储的
4 返回string结果

代码

// 67_二进制求和
// Author: 郑龙浩 Date: 2025年09月16日
// 1 将两个字符串逆序存储到int类型的vector中(记得两个int的vector要统一长度,方便计算)
// 2 进行高精度加法求和运算,只是这次是二进制,%2或/2
// 3 将vector<int>转换为string,并且是逆序存储的
// 4 返回string结果
// 用时:40min
#include "bits/stdc++.h"
using namespace std;
class Solution {
public:string addBinary(string s1, string s2) {int max_len = max(s1.size(), s2.size()); // 最大长度, 统一长度,方便计算与维护vector <int> nums1(max_len);vector <int> nums2(max_len);// 将字符串逆序存储到nums里for (int i = s1.size()-1; i >= 0; i--) nums1[s1.size() - 1 - i] = s1[i] - '0';for (int i = s2.size()-1; i >= 0; i--) nums2[s2.size() - 1 - i] = s2[i] - '0';// 模拟竖式运算进行求和操作// 默认多加一位,位了避免最后一位需要进位,但是i+1越界的情况出现vector <int> ans(max_len + 1, 0); // 存放求和结果for (int i = 0; i < max_len; i++) {ans[i] += nums1[i] + nums2[i]; // 先加进去ans[i+1] += ans[i] / 2; // 进位操作ans[i] %= 2; // 只保留一位}// 如果多留出的一位没有用到(即最后一位没再向多留出一位进位的话,就将最后一位去掉if (ans[max_len] == 0) {ans.pop_back();}// 将逆序变为正序,并且写成string类型的数据string s_ans;for (auto it = ans.rbegin(); it != ans.rend(); it++) {s_ans += (*it) + '0';}return s_ans;}
};int main(void) {ios::sync_with_stdio(0);cin.tie(0); cout.tie(0);string s1 = "11", s2 = "1";// string s1 = "1010", s2 = "1011";Solution sol;cout << sol.addBinary(s1, s2);return 0;
}
http://www.dtcms.com/a/398908.html

相关文章:

  • 世界模型是什么
  • 网站设计师联盟仿网站建设教程视频教程
  • 十大购物网站排名中山免费建网站
  • C++23特性全解析:从编译器支持矩阵到多维数组性能优化实战
  • Visual Studio 2022 / VS2022 激活码
  • MyBatis“别名扫描”功能
  • 安全产品(WAF)了解
  • 茂名网站建设方案书语音定制软件
  • 体育比分网功能详解:实时比分、赛事数据与资讯一站式服务平台
  • 鸿蒙ArkTS Canvas实战:转盘抽奖程序开发教程(基础到进阶)
  • 力扣每日一刷Day 25
  • Windows安全机制--脚本执行防御
  • Chat2DB:零门槛数据库操作的无界解决方案
  • 即墨网站推广网络经营范围包括哪些
  • dify 源码分析 agent
  • 静态网站开发工具有哪些做网站用的文本编辑器
  • 搜索百科(4):OpenSearch — 开源搜索的新选择
  • 异常以及异常处理
  • 2025年国际知名品牌OMS订单管理系统选型指南:从产品架构,生态资源到成功项目交付案例解析|商派
  • 从传统CNN到ResNet:深度学习中的深层网络革命
  • RAG知识增强系统2 - 检索器retriever
  • 52Hz——FreeRTOS学习笔记——任务的创建
  • 百度权重排名高的网站如何用ps做网站效果图
  • 动态设计网站p2p理财网站开发要求
  • 【AI】【Java后端】RAG 实战示例:SpringBoot + 向量检索 + LLM 问答系统
  • Google Pixel 10 vs iPhone 17
  • 2种方式从springbean中获取bean实例
  • iPhone 无线充电发展历史
  • 做康复医院网站推广普通话手抄报
  • Win版 Visual Studio Code配置C++环境