lintcode 二进制求和 给定两个二进制字符串,返回他们的和(用二进制表示)。
2016-02-21 18:06
309 查看
Lintcode容易题
二进制求和
查看运行结果
15:00Start
给定两个二进制字符串,返回他们的和(用二进制表示)。
您在真实的面试中是否遇到过这个题?
Yes
样例
a =
11
b =
1
返回
100
标签 Expand
字符串处理 二进制 脸谱网
public class Solution { /** * @param a a number * @param b a number * @return the result */ public String addBinary(String a, String b) { //java代码思路: /*和求两个链表的和很类似 考虑进位,考虑最后一项的进位 0+0 = 0 不需要进位 0+1 = 1 不需要进位 1+1 =0 进位 1 同时注意 低位进1,高位时1+1的情况,直接加就是3了,这个需要进位1 ,原位的结果也是1的情况 */ // Write your code here String result = ""; int aLen = a.length() - 1; int bLen = b.length() - 1; int sum = 0; while(aLen>=0 || bLen>=0){ if(aLen>=0){ sum +=Integer.parseInt(a.substring(aLen,aLen+1)); aLen--; } if(bLen>=0){ sum +=Integer.parseInt(b.substring(bLen,bLen+1)); bLen--; } if(sum==2){ result = "0" + result; sum=1; }else if(sum==0 || sum==1) { result = sum +"" + result; sum = 0; }else if(sum==3){ result = "1" + result; sum = 1; } } if(sum==1) result = "1" + result; return result; } }
</pre><p>C++代码:</p><p></p><p></p><pre name="code" class="cpp">class Solution { public: /** * @param a a number * @param b a number * @return the result */ string addBinary(string& a, string& b) { // Write your code here string result = ""; int c = 0, num = 0; int i = a.size() - 1, j = b.size() - 1; for (; i >= 0 && j >= 0; i--, j--){ num = (a[i] - '0') + (b[j] - '0') + c; c = num / 2; num = num % 2; result += ('0' + num); } for (; i >= 0; i--){ num = (a[i] - '0') + c; c = num / 2; num = num % 2; result += ('0' + num); } for (; j >= 0; j--) { num = (b[j] - '0') + c; c = num / 2; num = num % 2; result += ('0' + num); } if (c != 0) { result += ('0' + c); } i = 0; j = result.size() - 1; while (i < j){ char temp = result[i]; result[i] = result[j]; result[j] = temp; i++; j--; b0fa } return result; } }; //int main(){ string s1 = "11"; string s2 = "1"; Solution st; cout << st.addBinary(s1, s2); return 0;}整理的题目的相应的C++和java的源代码
相关文章推荐
- PostgreSQL新手入门教程
- mysql binlog二进制日志详解
- 详解C++编程中对二进制文件的读写操作
- 整理C# 二进制,十进制,十六进制 互转
- Ajax PHP简单入门教程代码
- Nodejs学习笔记之入门篇
- c#二进制逆序方法详解
- javascript每日必学之基础入门
- JS幻想 读取二进制文件第1/2页
- 使用jscript实现二进制读写脚本代码
- Bootstrap入门书籍之(五)导航条、分页导航
- Bootstrap入门书籍之(三)栅格系统
- Bootstrap入门书籍之(一)排版
- jQuery入门 构造函数
- jQuery入门介绍之基础知识
- 针对初学者的jQuery入门指南
- jquery 指南/入门基础
- JDBCTM 指南:入门
- C#二进制序列化实例分析
- JavaScript前端开发之实现二进制读写操作