首页 > 其他分享 >二进制加法,二进制数以字符串形式保存,最终返回字符串

二进制加法,二进制数以字符串形式保存,最终返回字符串

时间:2022-10-07 21:47:48浏览次数:49  
标签:end string 二进制 int 数以 字符串 进位

思路:先将字符串反转,用max()选出两个字符串中长的那个,短的补位0,从低位到高位计算,进位初始值0,计算时每次遍历结果为(进位+a[i] + b[i])%2,进位改为(进位+a[i] + b[i])/2,字符串全部遍历结束时如果进位不为0,将其添加到最高位。

ps:字符串反转用reverse(a.begin() , a.end() );

字符串末尾插入:a.push_back();

选大的数用max(int a,int b);

代码:

class Solution {
public:
    string addBinary(string a, string b) {
        string ans;
        reverse(a.begin(),a.end());
        reverse(b.begin(),b.end());
        int n=max(a.size(),b.size());
        int carry=0;
        for(int i=0;i<n;i++)
        {
            if(i<a.size()&&a[i]=='1')
            {
                carry+=1;
            }
            if(i<b.size()&&b[i]=='1')
            {
                carry+=1;
            }
            ans.push_back((carry%2)?'1':'0');
            carry=carry/2;
        }
        if(carry)
        {
            ans.push_back('1');
        }
        reverse(ans.begin(),ans.end());
        return ans;
    }
};

 

标签:end,string,二进制,int,数以,字符串,进位
From: https://www.cnblogs.com/sssyh/p/16767211.html

相关文章

  • 基本数据类型和字符串互转
      常用sprintf函数,用于其他类型转字符串:  例子:  简单理解一下sprintf的用法即可  注意,其中  a和b之间会输出空格,因为%d%d之间有空格,他们之间有什么......
  • 字符串函数
    常用三类系统函数:1)字符串;2)时间;3)数学1)头文件<string.h>,找C标准库参考手册看即可,里面包含众多C标准库–<string.h>|菜鸟教程(runoob.com)此处提供一个链接仅供参考......
  • Java实现rtrim功能,批量删除字符串指定末尾的字符串
    publicstaticStringremoveEndLoop(Stringstr,Stringremove){if(StringUtils.isBlank(str)||StringUtils.isBlank(remove)){returnstr;}......
  • 【数据结构和算法】LeetCode,初级算法-14字符串中的第一个唯一字符
    截止到目前我已经写了600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载下载链接:​​https://pan.baidu.com/s/1hjwK0ZeRxY......
  • 最优雅的Java字符串拼接是哪种方式?
    titleshortTitlecategorytagdescriptionhead最优雅的Java字符串拼接是哪种方式?Java字符串拼接Java核心数组&字符串Java程序员进阶之路,小白......
  • ABAP语法笔记09 - 字符串处理
    "截取LV_FIELD+X(Y)"标识从第X位截取到Y位字符,当Y为*时,从第X为截取后面所有的字符"分割SPLITLV_FIELDAT'&'INTOLV_FIELD1LV_FIELD2."表示通过字符&分割......
  • #yyds干货盘点# 前端歌谣的刷题之路-第一百零三题-回文字符串
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • C语言:字符串复制与连接的特殊应用
    #include<stdio.h>#include<string.h>main(){chara[10]="abc",b[10]="012",c[10]="xyz";strcpy(a+1,b+2);//b+2对应的字符2\0,结果bc改为2\0,所以a结果......
  • 二进制
    二进制相关整理基础例如:A:6000111100B:1300001101运算符:&:有0为0|:相或,有1为1,双0才0A|B:00111101^:相异为1A^B:00110001<<:A<<2......
  • 字符串,变量,常量,转义字符,学习笔记
    字符串:编程中表示文本的数据类型。所有用引号括起来的数据,都是字符串。在编程语言中,我们用字符串这种数据类型来表示和存储文本。在引号的内部,数据可以是英文、中文、数字......