实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| class Solution { public: string addBinary(string a, string b) { if(a.size() < b.size()) swap(a, b); auto br_i = b.rbegin(); auto ar_i = a.rbegin(); while(br_i != b.rend()){ *ar_i = (*ar_i - 48) + (*br_i - 48) + 48; ++ar_i; ++br_i; } cout << a << endl; ar_i = a.rbegin(); int save = 0; while(ar_i != a.rend()) { *ar_i = *ar_i + save; save = 0; if(*ar_i >= '2') { save = 1; int val = (*ar_i - 48) % 2; *ar_i = val + 48; } ++ar_i; } if(save) a = '1' + a; return a; } };
|
Accepted
294/294 cases passed (4 ms)
Your runtime beats 86.75 % of cpp submissions
Your memory usage beats 38.03 % of cpp submissions (8.8 MB)