【leetcode】Add Binary

Add Binary 

Given two binary strings, return their sum (also a binary string).

For example,
a = "11"
b = "1"
Return "100".

 

Hide Tags
  Math String
 
 
先补全字符串,从末尾开始加,每次计算当前位和进位即可
复制代码
 1 class Solution {
 2 public:
 3     char addBit(char a,char b,char &c)
 4     {
 5         if(a==b&&a=='1')
 6         {
 7             char ret;
 8             ret=c;
 9             c='1';
10             return ret;
11         }
12         else if(a==b&&a=='0')
13         {
14             
15             if(c=='0')
16             {
17                 return '0';
18             }
19             else
20             {
21                 c='0';
22                 return '1';
23             }
24         }
25         else
26         {
27             if(c=='1')
28                return '0';
29             else
30                return '1';
31             
32         }
33     }
34     
35     string addBinary(string a, string b) {
36         
37         int na=a.length()-1;
38         int nb=b.length()-1;
39         
40         if(na!=nb)
41         {
42             string tmp(abs(na-nb),'0');
43             if(na>nb)
44                 b=tmp+b;
45             else
46                 a=tmp+a;
47         }
48         
49         int i=a.length()-1;
50         string result(a.length(), '1');
51         char c='0';
52         
53         while(i>=0)
54         {
55             result[i]=addBit(a[i],b[i],c);
56             i--;
57         }
58         if(c=='0')
59         {
60             return result;
61         }
62         else
63         {
64             return '1'+result;
65         }
66     }
67 };
复制代码

 

 

posted @   H5开发技术  阅读(125)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示