leetcode 67
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’来使两个字符串长度相同。
leetcode 67的更多相关文章
- # Leetcode 67:Add Binary(二进制求和)
Leetcode 67:Add Binary(二进制求和) (python.java) Given two binary strings, return their sum (also a binar ...
- LeetCode(67)题解: Add Binary
https://leetcode.com/problems/add-binary/ 题目: Given two binary strings, return their sum (also a bin ...
- LeetCode 67. Add Binary (二进制相加)
Given two binary strings, return their sum (also a binary string). For example,a = "11"b = ...
- [LeetCode] 67. Add Binary 二进制数相加
Given two binary strings, return their sum (also a binary string). The input strings are both non-em ...
- Java实现 LeetCode 67 二进制求和
67. 二进制求和 给定两个二进制字符串,返回他们的和(用二进制表示). 输入为非空字符串且只包含数字 1 和 0. 示例 1: 输入: a = "11", b = "1 ...
- Leetcode 67 Add Binary 大数加法+字符串处理
题意:两个二进制数相加,大数加法的变形 大数加法流程: 1.倒置两个大数,这一步能使所有大数对齐 2.逐位相加,同时进位 3.倒置两个大数的和作为输出 class Solution { public: ...
- LeetCode 67. Add Binary
Given two binary strings, return their sum (also a binary string). For example,a = "11"b = ...
- Java [Leetcode 67]Add Binary
题目描述: Given two binary strings, return their sum (also a binary string). For example,a = "11&qu ...
- leetcode[67] Plus One
题目:对一个用vector存的数字进行加1,然后返回加1后的值. 一次就在oj上通过了. 就是进位加上当前位如果大于9,那就当前位等于0: 随后进位还为1的话就是在数组前面插入一个1: class S ...
随机推荐
- linux 命令(1)screen
一.screen的安装和用法 Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器,这意味着你能够使用一个单一的终端窗口运行多终端的应用. Screen中有会话的概念,用户可以在一个s ...
- python (3)简单语法:字符串(strip函数),数据类型
一:字符串重复,索引,切片(字符串命令strip) 函数原型strip 声明:s为字符串,rm为要删除的字符序列 s.strip(rm) 删除s字符串中开头.结尾处,位于 rm删除序列的 ...
- GridView--scroolview嵌套listview和gridview
我们在真实项目中通常会遇到ListView或者GridView嵌套在ScrollView中问题.但是做的时候会发现,一旦两者进行嵌套,即会发生冲突.得不到我们希望的效果.由于ListView和Grid ...
- Android系统onKeyDown监控/拦截/监听/屏蔽返回键、菜单键和Home键
在Android系统中用来显示界面的组件(Component)为Activity,也就是说只有重写Activity的onKeyDown方法来监控/拦截/屏蔽系统的返回键(back).菜单键(Menu) ...
- jquery 2.0.3代码结构
(function(){ (21 , 94) 定义了一些变量和函数 jQuery = function(){}; (96 , 283) 给JQ对象,添加一些方法和属性 (285 , 347) exte ...
- linux下的gedit命令使用方法与技巧
1.启动: 从菜单启动:应用程序——>附件——>文本编辑器 从命令行执行以下命令: gedit 2.窗口说明: 菜单栏:包含您在 gedit 中处理文件所需的所有命令. ...
- 数据库事务 及ACID
数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行. 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永 ...
- Ubuntu查看磁盘空间命令(转载)
linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息. 1.命令格式: df [选项] [文件] 2.命 ...
- GCD信号量并发控制
/** * 当我们在处理一系列线程的时候,当数量达到一定量,在以前我们可能会选择使用NSOperationQueue来处理并发控制,但如何在GCD中快速的控制并发呢?答案就是dispatch_sem ...
- iOS 加入自定义字体方法
1.网上搜索字体文件(后缀名为.ttf,或.odf) 2.把字体库导入到工程的resouce中 3.在程序添加以下代码 输出所有字体 NSArray *familyNames = [UIFont fa ...