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 à ce moment-là sous forme de mémo.
Je le résolve avec Python3.
Table de codes Leet commençant à zéro
Dernière fois Leet Code Day 60 commençant à zéro "1481. Le moins de nombres entiers uniques après K suppressions"
À 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.
Le niveau de difficulté est facile. Étant donné l'entier signé 32 bits «x», le problème est de concevoir un algorithme qui calcule l'inverse de l'entier.
Input: 123 Output: 321
Input: -123 Output: -321
Input: 120 Output: 21
Dans le cas de Python, si vous utilisez des slices et des ʻabs`, vous pouvez spécifier des éléments et gérer des valeurs absolues, donc je pense que c'est relativement facile à résoudre.
Je ne connais pas les autres langues, mais il peut être courant de résoudre en utilisant des piles.
Puisqu'on suppose qu'il s'agit d'un entier de 32 bits cette fois, il est préférable de vérifier à l'avance s'il débordera même si un autre chiffre est ajouté avant de commencer le traitement.
En Python, il n'y a pas de valeur maximale pour le type int, vous pouvez donc calculer autant que vous avez de mémoire. Vous devez donc le configurer vous-même comme suit.
max_32 = 2**31 - 1
Si «x» est supérieur à cette valeur au début, il sera correctement classé lorsque 0 est renvoyé sans condition.
Et pour la branche après cela, si c'est une valeur positive, prenez l'élément par l'arrière, si c'est une valeur négative, prenez l'élément de l'opposé de la valeur absolue et ajoutez -
avant de le remplacer. ..
En Python, si la valeur est négative, si vous ajoutez -
au début de l'élément à affecter, il sera dans l'état avec -
même après la ré-inversion.
N'est-il pas correct d'écrire la version inversée dans la notation d'inclusion? Vous pensez peut-être que, mais il y a toujours la possibilité d'un débordement si le processus est terminé avec cela seul.
Donc, s'il est susceptible de déborder vers la dernière branche, retournez 0 et retournez la valeur inversée uniquement dans les autres cas, et vous avez terminé.
Voici un résumé de ces séries d'étapes.
class Solution:
def reverse(self, x: int) -> int:
max_32 = 2**31 - 1
if abs(x) > max_32:
return 0
if x < 0:
reverse_int = -int(str(abs(x))[::-1])
else:
reverse_int = int(str(x)[::-1])
if abs(reverse_int) > max_32:
return 0
else:
return reverse_int
# Runtime: 28 ms, faster than 86.13% of Python3 online submissions for Reverse Integer.
# Memory Usage: 14 MB, less than 9.77% of Python3 online submissions for Reverse Integer.
Au fait, j'ai commencé un nouveau blog. Je prévois de continuer à envoyer des informations sur Qiita, mais je prévois de l'écrire comme un blog de gadgets avec une technologie qui peut être écrite avec un contenu détendu, donc si vous êtes intéressé, veuillez utiliser le profil.
Jusqu'à ici pour cette fois. Je vous remercie pour votre travail acharné.
Recommended Posts