Leetcode#67:Add Binary

xiaoxiao2021-02-27  174

题目描述:两个二进制数相加,求和 解题思路:

两个字符串从后向前加,长度短的字符串前面补0;相加的结果一一追加在返回值的后面,最后反转返回值;

20180801更新:更简洁明了的答案

class Solution { public: string addBinary(string a, string b) { string s = ""; int la = a.length(); int lb = b.length(); int lmax = max(la, lb); //进位 char cnt = '0'; for(int index = 0; index < lmax; index++) { char ca = index < la ? a[la - index - 1] : '0'; char cb = index < lb ? b[lb - index - 1] : '0'; char sum = ca == cb ? '0' : '1'; char ssum = sum == cnt ? '0' : '1'; if((ca == '1' && cb == '1') || (sum == '1' && cnt == '1')) cnt = '1'; else cnt = '0'; s = s + ssum; } if(cnt == '1') s = s + cnt; reverse(s.begin(), s.end()); return s; } };
转载请注明原文地址: https://www.6miu.com/read-12692.html

最新回复(0)