Add Binary(二进制字符串相加)
来源:互联网 发布:java猜数字文档 编辑:程序博客网 时间:2024/05/16 04:37
Given two binary strings, return their sum (also a binary string).
For example,
a = "11"
b = "1"
Return "100"
.
Solutions:
刚开始走了弯路,将2进制字符串转化为整型int,相加后结果转化为2进制string。麻烦且字符串太长的话会出错。
后来用一个进位直接判断字符‘0’和‘1’相加结果。还要注意最后的顺序是反的,要反转一下。最后进位若为‘1’的话也要加上。
class Solution {public: string addBinary(string a, string b) { int ax=a.size()-1;int bx=b.size()-1;char jinwei='0';string str;for(; ax>=0 && bx>=0; --ax, --bx) {if(a[ax]=='0' && b[bx]=='0') {str+=jinwei;jinwei='0';}else if((a[ax]=='0' && b[bx]=='1') || (a[ax]=='1' && b[bx]=='0')){if('0'==jinwei) {str+='1';jinwei='0';} else {str+='0';jinwei='1';}}else if('1'==a[ax]&&'1'==b[bx]){if('0'==jinwei) {str+='0';jinwei='1';} else {str+='1';jinwei='1';}}}while(ax >= 0) {if('0'==a[ax]){str+=jinwei;jinwei='0';}else {if('0'==jinwei) {str+='1';jinwei='0';}else{str+='0';jinwei='1';}}--ax;}while(bx >= 0) {if('0'==b[bx]){str+=jinwei;jinwei='0';}else {if('0'==jinwei) {str+='1';jinwei='0';}else{str+='0';jinwei='1';}}--bx;}if('1'==jinwei){str+='1';}string ret;for(ax=str.size()-1; ax>=0; --ax) {ret+=str[ax];}return ret; }};
0 0
- Add Binary(二进制字符串相加)
- Add Binary 两个二进制字符串相加
- Add Binary 二进制相加
- LeetCode | Add Binary(二进制相加)
- [LeetCode]—Add Binary 两个字符串二进制相加
- leetcode_67. Add Binary 字符串形式的二进制数相加
- Add Binary 二进制相加 @LeetCode
- Leetcode:Add Binary 二进制相加
- Add Binary 二进制数相加
- LeetCode 67 Add Binary(二进制相加)(*)
- LeetCode-67 Add Binary(二进制数相加)
- Add Binary 将二进制数相加
- leetcode 67. Add Binary 二进制相加
- LeetCode-67-Add Binary(二进制相加)
- 二进制加法的实现(字符串形式) Add Binary
- 每日算法之四十六:Add Binary(二进制字符创相加)
- Add binary 两个String形式二进制数相加
- 二进制字符串求和-leetcode Add Binary
- Linux系统LVM管理常用命令参数详细刨析
- ELF Section Header 分析
- mongodb- 副本集(Ha方案)
- SNMPv3基于用户的安全模型USM(1)
- 为什么Android的图片质量会比iPhone的差?
- Add Binary(二进制字符串相加)
- DECLARE_MESSAGE_MAP( ) 用法
- JSONModel解析数据成Model
- Linux 下tr 使用小结
- iOS 企业证书申请
- Windows下搭建Eclipse+Android开发环境
- Smalltalk语言
- 32位和64位系统对于程序员的影响
- android监听网络