当前位置:网站首页>[算法] 劍指offer2 golang 面試題2:二進制加法
[算法] 劍指offer2 golang 面試題2:二進制加法
2022-07-06 12:50:00 【鄧嘉文Jarvan】
[算法] 劍指offer2 golang 面試題2:二進制加法
題目1:
給定兩個 01 字符串 a 和 b ,請計算它們的和,並以二進制字符串的形式輸出。
輸入為 非空 字符串且只包含數字 1 和 0。
示例 1:
輸入: a = “11”, b = “10”
輸出: “101”
示例 2:
輸入: a = “1010”, b = “1011”
輸出: “10101”
提示:
每個字符串僅由字符 ‘0’ 或 ‘1’ 組成。
1 <= a.length, b.length <= 10^4
字符串如果不是 “0” ,就都不含前導零。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/JFETK5
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
思路1: 模擬二進制加法
模擬二進制加法時間複雜度 O(n)
代碼
func addBinary(a string, b string) string {
//思路: 模擬二進制計算
length := len(a)
if len(b) > len(a) {
length = len(b)
}
//構造返回
resBs := make([]byte, length)
//從後往前指向的指針
aP, bP := len(a)-1, len(b)-1
//是否進比特
up := 0
for i := len(resBs) - 1; i >= 0; i-- {
var aByte byte = '0'
var bByte byte = '0'
if aP >= 0 {
aByte = a[aP]
aP--
}
if bP >= 0 {
bByte = b[bP]
bP--
}
// 統計個數
count1 := 0
if aByte == '1' {
count1++
}
if bByte == '1' {
count1++
}
count1 += up
//通過個數確定當前值和up
if count1 == 0 {
up = 0
resBs[i] = '0'
} else if count1 == 1 {
up = 0
resBs[i] = '1'
} else if count1 == 2 {
up = 1
resBs[i] = '0'
} else {
up = 1
resBs[i] = '1'
}
}
//最後的up
res := string(resBs)
if up == 1 {
res = "1" + res
}
return res
}
測試
边栏推荐
- Knowledge system of digital IT practitioners | software development methods -- agile
- Single chip Bluetooth wireless burning
- dosbox第一次使用
- Fairygui loop list
- Halcon knowledge: gray_ Tophat transform and bottom cap transform
- SSD technical features
- There is no red exclamation mark after SVN update
- KF UD分解之UD分解基础篇【1】
- 2021.11.10 compilation examination
- Derivation of logistic regression theory
猜你喜欢
Database course design: college educational administration management system (including code)
Vulnhub target: hacknos_ PLAYER V1.1
编译原理:源程序的预处理及词法分析程序的设计与实现(含代码)
Office提示您的许可证不是正版弹框解决
idea中导包方法
第一人称视角的角色移动
(5) Introduction to R language bioinformatics -- ORF and sequence analysis
Excel导入,导出功能实现
Theoretical derivation of support vector machine
(1) Introduction Guide to R language - the first step of data analysis
随机推荐
[Offer29] 排序的循环链表
rtklib单点定位spp使用抗差估计遇到的问题及解决
[Yu Yue education] guide business reference materials of Wuxi Vocational and Technical College of Commerce
Unity3D摄像机,键盘控制前后左右上下移动,鼠标控制旋转、放缩
[offer29] sorted circular linked list
ORA-02030: can only select from fixed tables/views
JUC forkjoin and completable future
【无标题】
[Chongqing Guangdong education] reference materials for regional analysis and planning of Pingdingshan University
(1) Introduction Guide to R language - the first step of data analysis
Idea problem record
Intermediate use tutorial of postman [environment variables, test scripts, assertions, interface documents, etc.]
Guided package method in idea
(the first set of course design) sub task 1-5 317 (100 points) (dijkstra: heavy edge self loop)
Meanings and differences of PV, UV, IP, VV, CV
In 2020, the average salary of IT industry exceeded 170000, ranking first
KF UD分解之UD分解基础篇【1】
ESP8266连接onenet(旧版MQTT方式)
第一人称视角的角色移动
FairyGUI增益BUFF數值改變的顯示