当前位置:网站首页>[algorithme] swordfinger offer2 golang question d'entrevue 2: addition binaire
[algorithme] swordfinger offer2 golang question d'entrevue 2: addition binaire
2022-07-06 12:50:00 【Duncan jarvan】
[Algorithmes] Un doigt d'épée.offer2 golang Questions d'entrevue2:Addition binaire
Titre1:
Compte tenu de deux 01 String a Et b ,Veuillez calculer leur somme,Et sortie sous forme de chaîne binaire.
Entrée comme Non vide Chaîne et ne contient que des nombres 1 Et 0.
Exemple 1:
Entrée: a = “11”, b = “10”
Produits: “101”
Exemple 2:
Entrée: a = “1010”, b = “1011”
Produits: “10101”
Conseils:
Chaque chaîne est composée uniquement de caractères ‘0’ Ou ‘1’ Composition.
1 <= a.length, b.length <= 10^4
Chaîne sinon “0” ,Il n'y a pas de zéros d'avance..
Source::Boucle de force(LeetCode)
Liens:https://leetcode-cn.com/problems/JFETK5
Le droit d'auteur est la propriété du réseau de saisie.Pour les réimpressions commerciales, veuillez contacter l'autorisation officielle,Reproduction non commerciale Veuillez indiquer la source.
Idées1: Addition binaire analogique
Complexité temporelle de l'addition binaire analogique O(n)
Code
func addBinary(a string, b string) string {
//Idées: Calcul binaire analogique
length := len(a)
if len(b) > len(a) {
length = len(b)
}
//Retour de la construction
resBs := make([]byte, length)
// Pointeur vers l'arrière et vers l'avant
aP, bP := len(a)-1, len(b)-1
//Oui Non
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--
}
// Nombre de statistiques
count1 := 0
if aByte == '1' {
count1++
}
if bByte == '1' {
count1++
}
count1 += up
// Déterminer la valeur actuelle et 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'
}
}
//Le dernier.up
res := string(resBs)
if up == 1 {
res = "1" + res
}
return res
}
Tests
边栏推荐
- (4) Data visualization of R language -- matrix chart, histogram, pie chart, scatter chart, linear regression and strip chart
- Talking about the startup of Oracle Database
- Programming homework: educational administration management system (C language)
- 2021.11.10 compilation examination
- FairyGUI人物状态弹窗
- 如何给Arduino项目添加音乐播放功能
- Single chip Bluetooth wireless burning
- Remember an experience of ECS being blown up by passwords - closing a small black house, changing passwords, and changing ports
- [算法] 剑指offer2 golang 面试题10:和为k的子数组
- FairyGUI条子家族(滚动条,滑动条,进度条)
猜你喜欢
随机推荐
1041 Be Unique (20 point(s))(哈希:找第一个出现一次的数)
MySQL shutdown is slow
Fairygui character status Popup
Programming homework: educational administration management system (C language)
(课设第一套)1-4 消息传递接口 (100 分)(模拟:线程)
[leetcode15] sum of three numbers
音乐播放(Toggle && PlayerPrefs)
FairyGUI增益BUFF數值改變的顯示
【RTKLIB 2.4.3 b34 】版本更新简介一
【rtklib】在rtk下使用抗差自适应卡尔曼滤波初步实践
FairyGUI复选框与进度条的组合使用
Idea problem record
【无标题】
SSD technical features
(课设第一套)1-5 317号子任务 (100 分)(Dijkstra:重边自环)
Unity3d makes the registration login interface and realizes the scene jump
[899] ordered queue
FairyGUI循環列錶
Prove the time complexity of heap sorting
Unity3D基础入门之粒子系统(属性介绍+火焰粒子系统案例制作)