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

相关文章

二进制文件转化成文本文件

文章中如果有写错、表述不明、有疑问或者需要扩展的知识,欢迎留言或者私信~   1.区别 如果一个文件说是文本文件,使用任何一种文本编辑器打开可以展现出人类可读信息字符,因为编码都符合某种编码方式,如ASCII、UTF8、GB2312等等(在文件头可以读出来是什么编码方式,然后文本编辑器再按照规则去读取翻译成对应的字符,展示给我们的就是可读的了)。(关于编码方式不了解可以看这一篇) 如果一

JAVA读取MongoDB中的二进制图片并显示在页面上

1:Jsp页面: <td><img src="${ctx}/mongoImg/show"></td> 2:xml配置: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001

剑指Offer—编程题10(二进制中1 的个数)

代码如下,请在JDK7及以上版本运行: public class Test10 {/*** 请实现一个函数, 输入一个整数,输出该数二进制表示中1的个数。* 例如把9表示成二进制是1001 ,有2位是1. 因此如果输入9,该出2。** @param n 待的数字* @return 数字中二进制表表的1的数目*/public static int numberOfOne(int

根据序列:2/1,3/2,5/3,...生成前30项打印出并求和

根据斐波那契数列 def fab(max): def fib_loop_while(max):max = maxa, b = 0, 1while max &

递归实现十进制转二进制

#include<stdio.h>#include<stdlib.h>//输入一个十进制,自己写一个函数转换为二进制//10进制转2进制:方法是除以2取余,逆序排列 //如果想转换为 8进制,则把代码中的2改为8就OK //下面这个是递归!!! void change2(int num)//如果输入num为10 {if(num==0){return ; }else{/* 不能这样写

前端算法题----三数求和问题

算法题讲解 真题描述: 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例1: 输入:nums = [-1,0,

java字符串在内存和文件中编码的不同——如何理解进制(二进制)与编码(UTF-8)的关系

不管是在内存中,还是文件中,还是网络传输中,计算机运算和存储的都只能是二进制。 内码是程序内部使用的字符编码,特别是某种语言实现其char或String类型在内存里用的内部编码;外码是程序与外部交互时外部使用的字符编码。 “外部”相对“内部”而言;不是char或String在内存里用的内部编码的地方都可以认为是“外部”。例如,外部可以是序列化之后的char或String,或者外部的文件、命令

二进制炸弹的fp是什么?

🏆本文收录于「Bug调优」专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 问题描述   我在解二进制炸弹第四阶段的递归时,对主函数中的片段的理解如下: 8bc4: e3530002 cmp r3, #28bc8:

C语言笔试题:实现把一个无符号整型数字的二进制序列反序后输出

目录 题目 实例 方法一:直接交换 方法二:间接交换 拓展 题目 编写一个函数,将一个无符号整数的所有位逆序(在32位机器下) 实例 例如有一个无符号整数  unsigned int num = 32; unsigned int 在32位系统中占4个字节(32位) 32的二进制数是:       0000 0000 0000 0000 0000 0000  0010

高斯算法的原理及其与常规求和方法的区别

高斯算法的原理 高斯算法的原理源于数学家卡尔·弗里德里希·高斯在他少年时期发现的一种求和方法。当时老师让学生们计算1到100的和,高斯发现了一种快速计算的方法。 高斯注意到,如果将序列的首尾两数相加,结果总是相同的。例如: [ 1 + 100 = 101 ][ 2 + 99 = 101 ][ 3 + 98 = 101 ]... 这样,一共有50对数,每对数的和都是101。因此,1到