当前位置:网站首页>[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

边栏推荐
- Lean product development - Lean Software Development & lean product development
- FGUI工程打包发布&导入Unity&将UI显示出来的方式
- (课设第一套)1-5 317号子任务 (100 分)(Dijkstra:重边自环)
- Naive Bayesian theory derivation
- 如何给Arduino项目添加音乐播放功能
- [leetcode622]设计循环队列
- Esp8266 connect onenet (old mqtt mode)
- PRIDE-PPPAR源码解析
- [Leetcode15]三数之和
- Database table splitting strategy
猜你喜欢

Expected value (EV)

第一人称视角的角色移动

SVN更新后不出现红色感叹号

(core focus of software engineering review) Chapter V detailed design exercises

Liste des boucles de l'interface graphique de défaillance

Fairygui character status Popup

微信小程序开发心得

idea中好用的快捷键

Force buckle 1189 Maximum number of "balloons"

Unity3d, Alibaba cloud server, platform configuration
随机推荐
Database course design: college educational administration management system (including code)
[Yu Yue education] guide business reference materials of Wuxi Vocational and Technical College of Commerce
MySQL replacement field part content
[leetcode622] design circular queue
341. Flatten nested list iterator
(core focus of software engineering review) Chapter V detailed design exercises
1041 Be Unique (20 point(s))(哈希:找第一个出现一次的数)
KF UD分解之伪代码实现进阶篇【2】
FairyGUI增益BUFF數值改變的顯示
程序设计大作业:教务管理系统(C语言)
Servlet
[offer18] delete the node of the linked list
Excel导入,导出功能实现
[899]有序队列
Unity3D,阿里云服务器,平台配置
FairyGUI人物状态弹窗
Talking about the startup of Oracle Database
What is the maximum length of MySQL varchar field
数据库课程设计:高校教务管理系统(含代码)
(the first set of course design) 1-4 message passing interface (100 points) (simulation: thread)