leetcode 67
2024-10-11 03:34:54
67. Add Binary
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
两个字符串存储二进制数,进行二进制加法,返回相加之后的结果。
代码如下:
class Solution {
public:
string addBinary(string a, string b) {
int flag = ;
int la = a.size() - ;
int lb = b.size() - ;
while(la >= && lb >= )
{
if((int)(a[la]-'') + (int)(b[lb]-'') + flag > )
{
if((int)(a[la]-'') + (int)(b[lb]-'') + flag == )
{
la > lb ? a[la] = '' : b[lb] = '';
}
else
{
la > lb ? a[la] = '' : b[lb] = '';
}
flag = ;
}
else
{
if((int)(a[la]-'') + (int)(b[lb]-'') + flag == )
{
la > lb ? a[la] = '' : b[lb] = '';
}
else
{
la > lb ? a[la] = '' : b[lb] = '';
}
flag = ;
}
la --;
lb --;
}
if(flag == )
{
return la > lb ? a : b;
}
if(a.size() > b.size() && flag == )
{
for(int j = a.size()-b.size()-; j >= ; j--)
{
if((int)(a[j]-'') + flag > )
{
if((int)(a[j]-'') + flag == )
{
a[j] = '';
}
else
{
a[j] = '';
}
flag =;
}
else
{
if((int)(a[j]-'') + flag == )
{
a[j] = '';
}
else
{
a[j] = '';
}
flag = ;
break;
}
}
if(flag == )
{
return "" + a;
}
return a;
}
else
{
for(int j = b.size()-a.size()-; j >= ; j--)
{
if((int)(b[j]-'') + flag > )
{
if((int)(b[j]-'') + flag == )
{
b[j] = '';
}
else
{
b[j] = '';
}
flag =;
}
else
{
if((int)(b[j]-'') + flag == )
{
b[j] = '';
}
else
{
b[j] = '';
}
flag = ;
break;
}
}
if(flag == )
{
return "" + b;
}
return b;
}
}
};
这样写代码太乱,可以先进行对齐操作,将短的字符串通过填充‘0’来使两个字符串长度相同。
最新文章
- childViewController 小计
- [.net 面向对象编程基础] (10) 类的成员(字段、属性、方法)
- Nginx支持多站点配置小结
- hadoop shell 详解
- A note to ";On global motions of a compressible barotropic and selfgravitating gas with density-dependent viscosities";
- PCL—低层次视觉—点云滤波(基于点云频率)
- Windows 窗体最小化和隐藏的区别及恢复
- Eclipse配置C/C++开发环境
- php 数组指针相关函数current(),next(),prev(),end()
- mongodump备份数据库
- 55 Jump Game i &;&; 45 Jump Game ii
- python中两种方法实现二分法查找,细致分析二分法查找算法
- 20.QT-Qpixmap实现图片鼠标缩放,鼠标拖动示例(详解)
- Web版记账本开发记录(一)代码和功能展示
- 不同路径(一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径?)
- isinstance函数
- Python: 字典dict: zip()
- Delphi I/O error 103 错误
- java.util.concurrent.RejectedExecutionException
- 使用python快速搭建web服务器
热门文章
- git(5) windows下 pycharm + git(github) ,在本地方便管理
- Javascript函数声明与函数表达式
- 启动mongoDB 以及常用操作命令
- Html5中的跨页面消息传输
- [SQL]循环插入数据,并且计算插入所用时间
- [SQL]sql语句中charindex的用法
- [HDU 2955]Robberies (动态规划)
- Java String 的实例(02)
- IntelliJ IDEA显示行号方法
- Rolling Cursor Invalidations with DBMS_STATS.AUTO_INVALIDATE (文档 ID 557661.1)