2016.6.21——Add Binary
Add Binary
本题收获:
对于相加而言,考虑进位以及进位之后的值为多少,全部进位完毕后进位还为1(11 + 11 = 110)需要添加一位.
1.string中默认每个元素为char型
2.从int型转化为char型 s[i] - '0'
从char型转化为int型 s[i] + '0'
3.char型和int型相加时按上式会报错 s = (char)(s[i] + '0') +s
s = (char)(s[i] + '0') +s 这样的写法 每次新的s(由(char)(s[i] + '0'))会放在左边,(加的s为老的s)
s += (char)(s[i] + '0') 每次新的s会放在右边
注意高低位来决定“+”的位置
4.c += i >= 0 ? a[i] - '0' : 0;这个语句的执行是 c += (i >= 0 ? a[i] - '0' : 0); 首先执行判断语句 ? :,在执行表达式c +=>
5.stray '\343' in program leetcode中报错,将报错行的空格全部删除,需要在重新打上(在写代码时可能出现全角符号的值或者是空格,好好检查下,或者重新输入)
题目:
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100".
思路:
我的思路:每位相加,但是没想出具体怎么做,其实这样行不通
leetcode:利用中间int型数,每次加两个数的相同位,然后在转化为string型,产生的进位保留加到下次循环。
代码:思路非常棒
class MyClass
{
public:
string addBinary(string a, string b)
{
string s;
long c = ;
int i = a.size() - , j = b.size() - ; while (i >= || j >= || c ==) //注意循环条件 || c == 1
{
c += i >= ? a[i] - '' : ; //string默认的为char型
i--;
c += j >= ? b[j] - '' : ; //从char型到int型 -'0'
j--;
s = (char)((c % ) + '') +s ; //从int型到char型 +'0'
c = c / ; //注意什么时候% ,什么时候 /
} return s;
}
};
我的测试代码:
// Add Binary.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include "iostream"
#include "string"
using namespace std; class MyClass
{
public:
string addBinary(string a, string b)
{
string s;
long c = ;
int i = a.size() - , j = b.size() - ; while (i >= || j >= || c ==) //注意循环条件
{
c += i >= ? a[i] - '' : ; //string默认的为char型
i--;
c += j >= ? b[j] - '' : ; //从char型到int型 -'0'
j--;
s = (char)((c % ) + '') +s ; //从int型到char型 +'0'
c = c / ;
} return s;
}
}; int _tmain(int argc, _TCHAR* argv[])
{
string a, b, res;
cin >> a;
cin >> b;
MyClass solution;
res = solution.addBinary(a, b);
cout << res << endl;
system("pause");
return ;
}
2016.6.21——Add Binary的更多相关文章
- FFMpeg ver 20160219-git-98a0053 滤镜中英文对照 2016.02.21 by 1CM
FFMpeg ver 20160219-git-98a0053 滤镜中英文对照 2016.02.21 by 1CM T.. = Timeline support 支持时间轴 .S. = Slice t ...
- Technical Committee Weekly Meeting 2016.06.21
Meeting time: 2016.June.21 1:00~2:00 Chairperson: Thierry Carrez Meeting summary: 1.Add current hou ...
- Murano Weekly Meeting 2016.06.21
Meeting time: 2016.June.21 1:00~2:00 Chairperson: Kirill Zaitsev, from Mirantis Meeting summary: 1. ...
- leetcode解题:Add binary问题
顺便把之前做过的一个简单难度的题也贴上来吧 67. Add Binary Given two binary strings, return their sum (also a binary strin ...
- [LintCode] Add Binary 二进制数相加
Given two binary strings, return their sum (also a binary string). Have you met this question in a r ...
- Add Binary
Add Binary https://leetcode.com/problems/add-binary/ Given two binary strings, return their sum (als ...
- ”耐撕“团队 2016.3.21 站立会议3 2 1 GO!
”耐撕“团队 2016.3.21 站立会议 时间:2016.3.21 ① 17:20-17:45 ②17:55-18:10 总计40分钟 成员: Z 郑蕊 * 组长 (博客:http://www ...
- LeetCode 面试:Add Binary
1 题目 Given two binary strings, return their sum (also a binary string). For example,a = "11&quo ...
- 67. Add Binary【LeetCode】
67. Add Binary Given two binary strings, return their sum (also a binary string). For example,a = &q ...
随机推荐
- list 交换位置扩展
public static List<T> Swap<T>(this List<T> list, int index1,int index2) { if(index ...
- angular 神坑 ,回调函数无法被监视
原方法,使用一个confirm 点ok然后回调,结果 界面无法刷新,搜索了下 是因为$scope没有监视model,必须使用apply方法 $scope.SelectedRow=row; negAle ...
- 深入理解JAVA虚拟机阅读笔记4——虚拟机类加载机制
虚拟机把描述类的Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制. 在Java语言中,类型的加载.连接和初始化过程都是 ...
- Java中split的对象被特殊字符(.或|)分隔
在Java中,一个String对象被一些特殊字符分隔时,可以使用split()方法,生成一个String[],然后进行其他的操作,就像下面这样: String str = "a1_b1_c1 ...
- CF1088F Ehab and a weird weight formula 贪心 倍增
CF1088F Ehab and a weird weight formula 题意 给定一棵树,点有点权,其中这棵树满足除了权值最小的点外,每个点至少有一个点权小于它的相邻点. 要求你重新构建这棵树 ...
- 洛谷 P1270 “访问”美术馆 解题报告
P1270 "访问"美术馆 题目描述 经过数月的精心准备,Peer Brelstet,一个出了名的盗画者,准备开始他的下一个行动.艺术馆的结构,每条走廊要么分叉为两条走廊,要么通向 ...
- 破解PostgresSQL登录的6种方法
第一种方式Hydra: Hydra通常是首选工具,它可以对50多种协议执行快速字典暴力攻击,包括telnet,postgres,http,https,smb服务和各种数据库等.现在需要选择一个字典 ...
- Nginx访问日志分析
nginx默认的日志格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$sta ...
- java多线程 -- 创建线程的第三者方式 实现Callable接口
Java 5.0 在 java.util.concurrent 提供了一个新的创建执行线程的方式:Callable 接口Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一个 ...
- 关于表单中Readonly和Disabled
Readonly和Disabled是用在表单中的两个属性,它们都能够做到使用户不能够更改表单域中的内容.但是它们之间有着微小的差别,总结如下: Readonly只针对input(text / pass ...