LeetCode 67. Add Binary

xiaoxiao2025-08-17  19

67. Add Binary

这题只能迭代字符串。一个接一个地加。 如果想用先把字符串转换为数字。相加后转换为字符串,是不可行的。因为测试数据会给出很长的字符串,是无法转换成数字的。 Code:

class Solution { public: string addBinary(string a, string b) { int carry=0,N1=a.size(),N2=b.size(); if(N1<N2) a =string(N2-N1, '0')+a; else if(N1> N2) b = string(N1-N2,'0')+b; string result; for(int i=a.size()-1; i>=0; i--){ switch(!!(a[i]-'0')+2*!!(b[i]-'0')+4*!!carry){ case 0: // a[i]=0 b[i]=0 carry=0 carry=0; result+='0'; break; case 1: // a[i]=1 b[i]=0 carry=0 case 2: // a[i]=0 b[i]=1 carry=0 carry=0; result+='1'; break; case 3: // a[i]=1 b[i]=1 carry=0 carry=1; result+='0'; break; case 4: // a[i]=0 b[i]=0 carry=1 carry=0; result+='1'; break; case 5: // a[i] =1 b[i]=0 carry=1 case 6: //a[i] =0 b[i]=1 carry=1 carry=1; result+='0'; break; case 7: //a[i]=1 b[i]=1 carry=1 carry=1; result+='1'; break; } } if(carry==1) result+='1'; reverse(result.begin(),result.end()); return result; } };
转载请注明原文地址: https://www.6miu.com/read-5034946.html

最新回复(0)