1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
| // @Title: 二进制加法 (二进制加法)
// @Author: 15816537946@163.com
// @Date: 2022-03-16 17:21:41
// @Runtime: 0 ms
// @Memory: 2.4 MB
func addBinary(a string, b string) string {
var ans string
var carry int
lenA, lenB := len(a), len(b)
n := lenA
if n < lenB {
n = lenB
}
for i := 0;i<n;i++ {
if i < lenA {
carry +=int(a[lenA-i-1]-'0')
}
if i < lenB {
carry += int(b[lenB-i-1]-'0')
}
ans = strconv.Itoa(carry%2)+ans
carry /=2
}
if carry > 0 {
ans = "1"+ans
}
/*
for lo, hi :=0, len(ans);lo < hi; lo, hi = lo+1, hi-1 {
ans [lo], ans [hi] = ans[hi], ans[lo]
}
*/
return ans
}
|