leetcode67:二进制求和

2024-06-11 10:04
文章标签 二进制 求和 leetcode67

本文主要是介绍leetcode67:二进制求和,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目链接:67. 二进制求和 - 力扣(LeetCode)

class Solution {
public:string addBinary(string a, string b) {int stralen = a.size(), strblen = b.size();int curtc;int Maxlen = max(stralen, strblen);vector<int> stra;vector<int> strb;vector<int> strc;string ss1;for(int i = 0; i < a.size(); i++){int curta = a[i] - '0';stra.push_back(curta);}for(int i = 0; i < b.size(); i++){int curtb = b[i] - '0';strb.push_back(curtb);}if(stralen < strblen){int difference = strblen - stralen;for(int i = 0; i < difference; i++){stra.insert(stra.begin(), 0);}}if(stralen > strblen){int difference = stralen - strblen;for(int i = 0; i < difference; i++){strb.insert(strb.begin(), 0);}}for(int i = Maxlen - 1; i >= 1; i--){int curt = stra[i] + strb[i];if(curt > 1){curtc = stra[i] + strb[i] - 2;stra[i - 1]++;strc.push_back(curtc);}if(curt == 1){strc.push_back(1);}if(curt == 0){strc.push_back(0);}}if(stra[0] + strb[0] > 1){curtc = stra[0] + strb[0] - 2;strc.push_back(curtc);strc.push_back(1);}if(stra[0] + strb[0] == 1){strc.push_back(1);}if(stra[0] + strb[0] == 0){strc.push_back(0);}for(int i = 0; i < strc.size(); i++){ss1 += strc[i] + '0';}reverse(ss1.begin(), ss1.end());return ss1;}
};

这个题目算作中档题。这个题目实际上我把字符串转成每一个相应的数字了,然后从后往前遍历两个数组的每一位和,大于1在判断是2还是3,这个代码适用于二进制求和,要是其他进制求和,还得另外编写代码。

这篇关于leetcode67:二进制求和的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1050862

相关文章

通信工程学习:什么是2ASK/BASK二进制振幅键控

2ASK/BASK:二进制振幅键控         2ASK/BASK二进制振幅键控是一种数字调制技术,其全称是二进制振幅键控(Binary Amplitude Shift Keying)。该技术通过改变载波的振幅来传递二进制数字信息,而载波的频率和相位则保持不变。以下是关于2ASK/BASK二进制振幅键控的详细解释: 一、2ASK/BASK二进制振幅键控的基本原理 1、振幅键控:

1 模拟——67. 二进制求和

1 模拟 67. 二进制求和 给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。 示例 1:输入:a = "11", b = "1"输出:"100"示例 2:输入:a = "1010", b = "1011"输出:"10101" 算法设计 可以从低位到高位(从后向前)计算,用一个变量carry记录进位,如果有字符没处理完或者有进位,则循环处理。两个字符串对

Leetcode67---二进制求和

https://leetcode.cn/problems/add-binary/description/ 给出的两个二进制,我们可以从最后开始往前运算。 给当前短的一位前面补充0即可。 class Solution {public String addBinary(String a, String b) {//给的就是二进制字符串 最后一位开始遍历 如果没有就补充0?StringBuil

二进制的匹配问题

最近做了点搜索和背包的题目,发现这个二进制的匹配很是好用,所以写一篇二进制的匹配来作为自我总结; 首先我们要知道二进制的运算符,和他们的运算规则; ABA&BA|BA^B00000010111001111110 运算符有三种‘&’ , ‘|’ ,  ‘^'  或,且,异或,运算的规则在表中可以看到,想想这个规则我们可以做很多事情! 首先,每个十进制的数都会对应一个唯一的二进

UVa 10820 Send a Table (Farey数列欧拉函数求和)

这里先说一下欧拉函数的求法 先说一下筛选素数的方法 void Get_Prime(){ /*筛选素数法*/for(int i = 0; i < N; i++) vis[i] = 1;vis[0] = vis[1] = 0;for(int i = 2; i * i < N; i++)if(vis[i]){for(int j = i * i; j < N; j += i)vis[j] =

【hdu】敌兵布阵(线段树,更加结点,区间求和)

最近开始刷线段树,主要围绕notonlysuccess的线段树总结刷。 结点修改还是比较简单的,不需要什么懒惰标记,直接二分递归就可以了。 #include <iostream>#include <cstdlib>#include <cstdio>#include <string>#include <cstring>#include <cmath>#include <vecto

上海市计算机学会竞赛平台2024年7月月赛丙组求和问题

题目描述 给定 nn 个整数 a1,a2,…,ana1​,a2​,…,an​,请问这个序列最长有多少长的前缀,满足元素的和大于或等于 00?如果任何长度大于 00 的前缀之和都为负数,则输出 00 输入格式 第一行:单个整数表示 nn第二行:nn 个整数表示 a1,a2,…,ana1​,a2​,…,an​ 输出格式 单个整数:表示最长的前缀长度,使得前缀的和大于等于 00 数据范围

每日OJ_牛客_求和(递归深搜)

目录 牛客_求和(递归深搜) 解析代码 牛客_求和(递归深搜) 求和_好未来笔试题_牛客网 解析代码         递归中每次累加一个新的数,如果累加和大于等于目标,结束递归。此时如果累加和正好等于目标,则打印组合。向上回退搜索其它组合。此题本身就是一个搜索的过程,找到所有的组合。 #include <iostream>#include <cmath>#in

二进制方式安装Helm

二进制方式安装Helm 官网:https://helm.sh/ 1、下载安装包 wget -L https://get.helm.sh/helm-v3.16.0-rc.1-linux-amd64.tar.gz 2、解压 tar -xf helm-v3.16.0-rc.1-linux-amd64.tar.gz 3、移动到/usr/local/bin/目录下 mv linux-am

C/C++的阶乘求和以及变量存储数据大小

目录 1. 前言 2. 正文 2.1 问题 2.2 解决办法 2.2.1 思路 2.2.2 代码实现 2.2.3 测试结果 3. 备注 1. 前言 其实刚学C语言的时候,打击都会先认识,类型,像int,double之类的存储类型。在这篇文章中,就需要大家对这个大小有了解。 2. 正文 2.1 问题 题目描述: 一个正整数如果等于组成它的各位数字的阶乘之和,该整数