LeetCode-Add Binary
生活随笔
收集整理的這篇文章主要介紹了
LeetCode-Add Binary
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
同水題,哎,今天無心做難題,只好刷刷水題。
還心不在焉地把i、j打錯了,錯了好幾次,哭,完全沒有達到做題的狀態!
1 class Solution { 2 public: 3 string addBinary(string a, string b) { 4 // Start typing your C/C++ solution below 5 // DO NOT write int main() function 6 int n1 = a.size(); 7 int n2 = b.size(); 8 if (n1 == 0 && n2 == 0) { 9 string res = 0; 10 return res; 11 } 12 if (n1 == 0) { 13 return b; 14 } 15 if (n2 == 0) { 16 return a; 17 } 18 int n = min(n1, n2); 19 int m = max(n1, n2); 20 string s = a; 21 int carry = 0; 22 if (n2 > n1) { 23 s = b; 24 } 25 int i = n1 - 1; 26 int j = n2 - 1; 27 int k = m - 1; 28 while (i >= 0 && j >= 0) { 29 a[i] -= '0'; 30 b[j] -= '0'; 31 s[k] = a[i] + b[j] + carry; 32 if (s[k] >= 2) { 33 s[k] -= 2; 34 s[k] += '0'; 35 carry = 1; 36 } 37 else { 38 carry = 0; 39 s[k] += '0'; 40 } 41 i--; 42 j--; 43 k--; 44 } 45 if (!carry) { 46 return s; 47 } 48 while (k >= 0 && carry) { 49 s[k] -= '0'; 50 s[k] += carry; 51 if(s[k] >= 2) { 52 s[k] -= 2; 53 s[k] += '0'; 54 carry = 1; 55 } 56 else { 57 carry = 0; 58 s[k] += '0'; 59 } 60 k--; 61 } 62 if (!carry) { 63 return s; 64 } 65 string res = "1" + s; 66 return res; 67 } 68 };?
轉載于:https://www.cnblogs.com/chasuner/p/addbinary.html
總結
以上是生活随笔為你收集整理的LeetCode-Add Binary的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: chorme插件 ,在浏览器上模拟手机,
- 下一篇: ubuntu安装oracle数据库乱码问