aboutsummaryrefslogtreecommitdiff
path: root/Computer_Science/leetcode/67-add_binary.c~
diff options
context:
space:
mode:
authorSteve Lee <me@xiangyangli.com>2018-01-13 05:13:14 +0800
committerSteve Lee <me@xiangyangli.com>2018-01-13 05:13:14 +0800
commita46ec300092c1ee8ccac629b7f335643f87662f5 (patch)
treeb03e20d905e6f583df626386164daf4aa5f81519 /Computer_Science/leetcode/67-add_binary.c~
parent79a9c52fa923fc78074d88463449a8b7f95ca3ef (diff)
download42-a46ec300092c1ee8ccac629b7f335643f87662f5.tar.xz
42-a46ec300092c1ee8ccac629b7f335643f87662f5.zip
update
Diffstat (limited to 'Computer_Science/leetcode/67-add_binary.c~')
-rw-r--r--Computer_Science/leetcode/67-add_binary.c~30
1 files changed, 30 insertions, 0 deletions
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++;
+ }
+
+}