leetcode 67
2023-11-14 21:09:09
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’来使两个字符串长度相同。
最新文章
- 谢欣伦 - 原创软件 - 游戏专题 - 我的桌面My Desktop
- COGS396. [网络流24题]魔术球问题(简化版
- js中,全局变量与直接添加在window属性的区别
- Compound Interest Calculator2.0
- PHPCMS V9 学习总结(转)
- 64位Win7安装+32位Oracle + PL/SQL 解决方法
- mongodb进阶一之高级查询
- Core Data需求
- Unix系统操作指令汇总
- [Tyvj模拟赛]运
- DevOps: CLM, RLM, RPM, RPD, BSA, BAA, BMA - WOW!
- Linux驱动面试题
- VueRouter 源码深度解析
- 性能测试二:jmeter参数化+聚合报告
- github贡献开源项目
- Python3基础 list enumerate 将列表的每个元素转换成 带索引值的元组
- caffe中全卷积层和全连接层训练参数如何确定
- ID3D11DeviceContext::DrawIndexed DrawIndexed 参数详解 StartIndexLocation BaseVertexLocation
- 阻止form提交数据,通过ajax等上传数据
- android 实现 view 滑动
热门文章
- RN项目搭建
- MySQL 开启与关闭远程访问&;&;授权前需执行GRANT USAGE ON *.* TO 'cai'@'%' IDENTIFIED BY 'caigan2015';才能终端访问
- Linux Shell入门(转载)
- (转)关于rdlc报表的数据源
- js中如何操作json数据
- Enumerator yielder.yield 与 Proc.yield 区别
- Entity Framework6 访问MySQL
- (medium)LeetCode 233.Number of Digit One
- [HDU 1114] Piggy-Bank (动态规划)
- fw:sed的高级用法