LeetCode 67 Add Binary

新颖之处:虽然代码十分清晰明了,但是这种书写方式、以及代码中变量的设置都是很值得学习的!
// 二进制加法
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
char* addBinary(char* a,char* b){
	int lena = strlen(a) , lenb = strlen(b);
	int lent = (lena > lenb ? lena : lenb) + 1;
	int thirddig = 0 , leni = lent - 1;
	char* tmp = (char*)malloc(lent + 1);
	tmp[lent] = '';
	for(int i=lena-1 , j=lenb-1 ; i>=0 || j>=0 ; i--,j--){
		if (i>=0 && a[i]=='1')	thirddig++;
		if (j>=0 && b[j]=='1') thirddig++;
		tmp[leni--] = (thirddig%2) + '0' ;
		thirddig  = thirddig >= 2 ? 1 : 0 ;
	}
	if(thirddig)	tmp[leni--] = thirddig + '0' ;
	return tmp+leni+1;
}
int main(){
	char s1[200],s2[200];
	while(scanf("%s%s",&s1,&s2)!=EOF){
		puts(addBinary(s1,s2));
	}
	return 0;
}
原文地址:https://www.cnblogs.com/WArobot/p/6694044.html