Il semble que des tests de codage soient menés à l'étranger lors d'entretiens d'ingénieurs, et dans de nombreux cas, l'essentiel est d'implémenter des fonctions et des classes spécifiques en fonction du thème.
Apparemment, de nombreux ingénieurs prennent des mesures sur le site appelé LetCode.
C'est un site qui forme la puissance de l'algorithme qui peut résister au test de codage effectué au début, et c'est un chemin inévitable pour ceux qui veulent faire carrière dans une entreprise de technologie à l'étranger.
Je l'ai écrit en grand, mais je n'ai pas l'intention d'avoir une telle interview pour le moment.
Cependant, en tant qu'ingénieur informatique, il serait préférable d'avoir le même niveau de puissance d'algorithme qu'une personne, alors j'aimerais résoudre le problème de manière irrégulière et écrire la méthode que je pensais à l'époque sous forme de mémo.
Je le résolve avec Python3.
Table de codes Leet commençant à zéro
Dernière fois Leet Code Day53 à partir de zéro "1365. Combien de nombres sont plus petits que le nombre actuel"
À l'heure actuelle, je donne la priorité au moyen des 100 questions les plus appréciées. Easy a été résolu, donc si vous êtes intéressé, veuillez vous rendre à la table.
Twitter Je le fais.
1290. Convert Binary Number in a Linked List to Integer Le niveau de difficulté est facile.
Le problème reçoit une liste concaténée unidirectionnelle «head». Chaque nœud a «0» ou «1» comme valeurs et les traite comme des valeurs binaires. Ici, convertissez ces valeurs de notation binaire en notation décimale et concevez un algorithme qui renvoie des nombres.
Input: head = [1,0,1] Output: 5 Explanation: (101) in base 2 = (5) in base 10
Input: head = [0] Output: 0
Input: head = [1] Output: 1
Input: head = [1,0,0,1,0,0,1,1,1,0,0,0,0,0,0] Output: 18880
Input: head = [0,0] Output: 0
Je pense que la conversion de base est un peu une histoire. Cela peut être ennuyeux au début, mais si vous regardez de plus près, il s'agit souvent d'un modèle, il est donc recommandé de résoudre le problème et de s'y habituer.
La chose importante à propos de ce problème est
--Couvrir tous les éléments de la liste concaténée --Convertir du binaire au décimal
Cela peut donc être facile si vous pouvez le comprendre.
Il semble qu'il suffit de préparer un tableau, de l'ajouter au tableau, de passer à l'élément suivant et de l'écrire avec une instruction while.
C'est une conversion de base, mais en Python, par exemple,
int('10',2)
Si vous l'écrivez sous la forme de, il convertira le nombre binaire en nombre décimal, donc si vous l'utilisez, la conversion elle-même est facile.
Pour plus d'informations [Document officiel] Nous vous recommandons de vous référer à (https://docs.python.org/ja/3/library/stdtypes.html?highlight=find).
Écrivons le flux jusqu'à ce point en Python.
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, x):
# self.val = x
# self.next = None
class Solution:
def getDecimalValue(self, head: ListNode) -> int:
ans = []
while head:
ans.append(str(head.val))
head = head.next
return int(''.join(ans),2)
# Runtime: 16 ms, faster than 99.88% of Python3 online submissions for Convert Binary Number in a Linked List to Integer.
# Memory Usage: 13.7 MB, less than 85.59% of Python3 online submissions for Convert Binary Number in a Linked List to Integer.
fonction de jointure est une fonction pratique qui concatène et renvoie sous forme de chaîne de caractères si vous spécifiez l'élément délimiteur.
Par exemple, si vous considérez l'exemple, à la fin de l'instruction while, head = [1,0,1]
est ajouté au tableau ʻans avec
str, donc ʻans = ['. Il devient 1 ',' 0 ',' 1 ']
. Si vous écrivez après retour pour concaténer ici, ce sera ʻans ['101', 2] `, donc il sera finalement converti en nombre décimal et retourné.
Jusqu'à ici pour cette fois. Je vous remercie pour votre travail acharné.
Recommended Posts