《leetcode

编程入门 行业动态 更新时间:2024-10-25 16:24:29

《<a href=https://www.elefans.com/category/jswz/34/1769930.html style=leetcode"/>

《leetcode

给出两个用字符串表示的二进制数,返回他们的和(也用字符串表示)

例如:

a ="11"
b ="1"
返回"100".

思路:字符串按位转化为数字,然后从低位开始,求出结果根据二进制判断是否进1,然后结果依次拼接。注意两个字符串的长短差异。

package main
import ("strconv""strings"
)/*** * @param a string字符串 * @param b string字符串 * @return string字符串
*/
func addBinary( a string ,  b string ) string {// write code hereaList := strings.Split(a, "")bList := strings.Split(b, "")aLen := len(aList)bLen := len(bList)var longList []stringvar shortList []stringvar longLen intvar shortLen intif aLen >= bLen {longList = aListshortList = bListlongLen = aLenshortLen = bLen} else {longList = bListshortList = aListlongLen = bLenshortLen = aLen}flag := 0for i, j := longLen-1, shortLen-1; i >= 0; i, j = i-1, j-1 {var shortNum intlongNum, _ := strconv.Atoi(longList[i])if j >= 0 {shortNum, _ = strconv.Atoi(shortList[j])} else {shortNum = 0}if (longNum+shortNum+flag)%2 == 0 {longList[i] = "0"} else {longList[i] = "1"}if (longNum+shortNum+flag)/2 == 1 {flag = 1} else {flag = 0}}if flag == 1 {longList = append([]string{"1"}, longList...)}return strings.Join(longList, "")
}

更多推荐

《leetcode

本文发布于:2024-02-27 16:53:20,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1707440.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:leetcode

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!