【leetcode】Add Binary
2015-05-08 20:44
239 查看
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 la=a.length(); int lb=b.length(); if(la==0) return b; if(lb==0) return a; char cur='0'; string res,answer; while(la&&lb) { if(a[la-1]=='1' && b[lb-1]=='1' && cur=='1'){res.push_back('1');cur='1';} else if((a[la-1]=='1' && b[lb-1]=='1') ||(a[la-1]=='1' && cur=='1')||(b[lb-1]=='1' && cur=='1')){res.push_back('0');cur='1';} else if(a[la-1]=='0' && b[lb-1]=='0' && cur=='0') {res.push_back('0');cur='0';} else {res.push_back('1');cur='0';} la--; lb--; } while(la) { if(a[la-1]=='1' && cur=='1'){res.push_back('0');cur='1';} else if(a[la-1]=='0' && cur=='0') {res.push_back('0');cur='0';} else {res.push_back('1');cur='0';} la--; } while(lb) { if(b[lb-1]=='1' && cur=='1'){res.push_back('0');cur='1';} else if(b[lb-1]=='0' && cur=='0') {res.push_back('0');cur='0';} else {res.push_back('1');cur='0';} lb--; } if(cur=='1') res.push_back('1'); for(int i=res.length()-1;i>=0;i--) { answer.push_back(res[i]); } return answer; } };
相关文章推荐
- Java for LeetCode 067 Add Binary
- [LeetCode]Add Binary
- Leetcode: Add Binary
- 【LeetCode】67. Add Binary
- [LeetCode] Add Two Numbers、Divide Two Integers、Multiply Strings、Add Binary、Plus One
- [LeetCode] Add Binary
- leetCode(52):Add Binary
- leetcode 067 Add Binary
- [Leetcode] Add Binary
- Leetcode 67 —— Add Binary
- LeetCode-Add Binary
- LeetCode 67 Add Binary
- [LeetCode]—Add Binary 两个字符串二进制相加
- LeetCode 67. Add Binary
- [leetcode][67] Add Binary
- [leetcode] 67.Add Binary
- Leetcode 67: Add Binary
- LeetCode 67. Add Binary
- Add Binary - Leetcode
- leetcode -- Add Binary