From a46ec300092c1ee8ccac629b7f335643f87662f5 Mon Sep 17 00:00:00 2001 From: Steve Lee Date: Sat, 13 Jan 2018 05:13:14 +0800 Subject: update --- Computer_Science/leetcode/67-add_binary.c~ | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 Computer_Science/leetcode/67-add_binary.c~ (limited to 'Computer_Science/leetcode/67-add_binary.c~') diff --git a/Computer_Science/leetcode/67-add_binary.c~ b/Computer_Science/leetcode/67-add_binary.c~ new file mode 100644 index 0000000..1fdffec --- /dev/null +++ b/Computer_Science/leetcode/67-add_binary.c~ @@ -0,0 +1,30 @@ +#define MAX(a, b) ((a) > (b) ? (a) : (b)) +char* addBinary(char* a, char* b) { + char* result = malloc(sizeof(char) * (MAX(strlen(a), strlen(b)) + 2)); + char in = '0'; + int sum = 0; + while(*a && *b) { + sum = *a + *b + in - 3 * '0'; + switch(sum) { + case 0: + in = '0'; + *result = '0'; + break; + case 1: + in = '0'; + *result = '1'; + break; + case 2: + in = '1'; + *result = '0'; + break; + case 3: + in = '1'; + *result = '1'; + break; + } + + result++; + } + +} -- cgit v1.2.3