当前位置:网站首页>[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
边栏推荐
- Latex learning
- Agile development helps me
- PR 2021 quick start tutorial, first understanding the Premiere Pro working interface
- Affichage du changement de valeur du Buff de gain de l'interface graphique de défaillance
- Unity scene jump and exit
- Solution to the problem of automatic login in Yanshan University Campus Network
- 第一人称视角的角色移动
- ORA-02030: can only select from fixed tables/views
- Database table splitting strategy
- Naive Bayesian theory derivation
猜你喜欢
ESP8266连接onenet(旧版MQTT方式)
FairyGUI人物状态弹窗
Latex learning
[Nodejs] 20. Koa2 onion ring model ----- code demonstration
Mixed use of fairygui button dynamics
Database course design: college educational administration management system (including code)
idea中导包方法
Programming homework: educational administration management system (C language)
[算法] 剑指offer2 golang 面试题12:左右两边子数组的和相等
FairyGUI循環列錶
随机推荐
(四)R语言的数据可视化——矩阵图、柱状图、饼图、散点图与线性回归、带状图
Comparative analysis of the execution efficiency of MySQL 5.7 statistical table records
[leetcode19]删除链表中倒数第n个结点
How to reduce the shutdown time of InnoDB database?
基本Dos命令
rtklib单点定位spp使用抗差估计遇到的问题及解决
【GNSS】抗差估计(稳健估计)原理及程序实现
Office提示您的许可证不是正版弹框解决
(the first set of course design) sub task 1-5 317 (100 points) (dijkstra: heavy edge self loop)
Unity3d camera, the keyboard controls the front and rear left and right up and down movement, and the mouse controls the rotation, zoom in and out
Gravure sans fil Bluetooth sur micro - ordinateur à puce unique
微信小程序开发心得
Easy to use shortcut keys in idea
NRF24L01 troubleshooting
(5) Introduction to R language bioinformatics -- ORF and sequence analysis
wsl常用命令
Mysql database index
地球围绕太阳转
Halcon knowledge: gray_ Tophat transform and bottom cap transform
【RTKLIB 2.4.3 b34 】版本更新简介一