J'ai essayé LeetCode tous les jours 7. Integer Integer (Python, Go)

introduction

@Ishishow gère un site de mots anglais gratuit E-tan.

J'aimerais travailler quotidiennement sur letcode pour améliorer mes capacités de programmeur et donner ma propre façon de le résoudre.

Qu'est-ce que Leetcode

leetcode.com C'est la pratique de coder des interviews pour les développeurs de logiciels. Au total, plus de 1 500 questions de codage ont été affichées, et il semble que les mêmes questions soient souvent posées lors d'entretiens réels.

Introduction au langage Go + Algorithme Je vais le résoudre avec Golang et Python pour renforcer mon cerveau. (Python est faible mais expérimenté)

Jour 2 (problème 07)

Reverse Integer

Si vous spécifiez un entier signé 32 bits, ce sera le chiffre inverse de l'entier.

** Remarque: ** En supposant que nous ayons affaire à un environnement capable de stocker des entiers dans la plage d'entiers signés 32 bits: [-2 31, 2 31 -1]. Pour les besoins de ce problème, supposons que la fonction renvoie 0 lorsque l'entier inverse déborde.

Example 1:

  Input: x = 123
  Output: 321

Example 2:

  Input: x = -123
  Output: -321

Example 3:

  Input: x = 120
  Output: 21

Example 4:

  Input: x = 0
  Output: 0

Façon de penser

  1. Faites un jugement positif / négatif, et s'il est négatif, rendez-le positif.
  2. Inversez les nombres par traitement en boucle
  3. Décrivez le traitement de INTMAX et INTMIN. (Traitement de débordement)

Explication

  1. Je viens d'appliquer un moins.
  2. Affectez le reste divisé par 10 à une variable appelée ans → et multipliez ans par 10 avant la prochaine affectation (l'inverse est vrai de cette façon!)
  3. Pour Go, j'ai essayé d'utiliser le package math!

--Code de réponse

  class Solution(object):
      def reverse(self, x):
          if x < 0:
              return (self.roop_func(-x) * -1)
          else:
              return self.roop_func(x)
          
      def roop_func(self,x):
          ans = 0
          while x > 0:
              ans = ans*10 + x % 10
              x /= 10
          if -(ans) < -(2**31) or ans > 2**31 - 1:
              return 0
          return ans
  import "math"
  
  func reverse(x int) int {
  	if x < 0 {
  		return -(roop_int(-x))
  	} else {
  		return roop_int(x)
  	}
  }
  
  func roop_int(x int) int {
  	ans := 0
  	for x > 0 {
  		ans = ans*10 + x%10
  		x /= 10
  	}
  	if -(ans) < math.MinInt32 || ans > math.MaxInt32 {
  		return 0
  	}
  	return ans
  }

Temps d'exécution Go et Python

À partir de la gauche, RunTime, Memory, language. Ne vous inquiétez pas de faire une erreur.

キャプチャ.PNG

Une autre solution

Il semble y avoir un moyen de le résoudre en inversant les personnages. Cette personne a également travaillé dessus, mais c'est facile. ..

class Solution(object):
    def reverse(self, x):
        s = (x > 0) - (x < 0)
        r = int(str(x*s)[::-1])
        return s*r * (r < 2**31)

La manipulation de chaînes est facile avec python!

-Self memo (Go)

Go ne parvient pas à compiler s'il y a des variables inutilisées, des packages

La chaîne de caractères ne peut pas être nulle

Articles référencés

[Débutant] Pièges pour ceux qui sont nouveaux dans le langage Go, solutions aux problèmes et aux erreurs courantes

Recommended Posts

J'ai essayé LeetCode tous les jours 7. Integer Integer (Python, Go)
J'ai essayé LeetCode tous les jours 13. Roman to Integer (Python, Go)
J'ai essayé LeetCode tous les jours 20. Parenthèses valides (Python, Go)
J'ai essayé LeetCode tous les jours 9. Palindrome Number (Python, Go)
J'ai essayé LeetCode tous les jours 1. Two Sum (Python, Go)
J'ai essayé LeetCode tous les jours 14.Le plus long préfixe commun (Python, Go)
J'ai essayé LeetCode tous les jours 21. Fusionner deux listes triées (Python, Go)
J'ai essayé LeetCode tous les jours 26. Supprimer les doublons du tableau trié (Python, Go)
J'ai essayé Grumpy (allez exécuter Python).
J'ai essayé d'exécuter faiss avec python, Go, Rust
J'ai essayé Python> autopep8
J'ai essayé Python> décorateur
J'ai essayé fp-growth avec python
J'ai essayé de gratter avec Python
J'ai essayé l'extension C de Python
J'ai essayé gRPC avec Python
J'ai essayé de gratter avec du python
J'ai essayé de toucher Python (installation)
J'ai essayé webScraping avec python.
J'ai essayé d'utiliser Thonny (Python / IDE)
J'ai essayé d'exécuter prolog avec python 3.8.2.
J'ai essayé la notification de ligne en Python
J'ai essayé la communication SMTP avec Python
J'ai essayé de résumer la gestion des exceptions Python
J'ai essayé d'implémenter PLSA en Python
J'ai essayé d'implémenter la permutation en Python
Livre Wrangle x Python Je l'ai essayé [2]
J'ai essayé d'implémenter PLSA dans Python 2
Entrée standard Python3 que j'ai essayé de résumer
J'ai essayé d'utiliser l'optimisation bayésienne de Python
J'ai essayé le rendu non réaliste avec Python + opencv
J'ai essayé d'utiliser l'API UnityCloudBuild de Python
J'ai essayé d'implémenter ADALINE en Python
J'ai essayé un langage fonctionnel avec Python
J'ai essayé la récurrence avec Python ② (séquence de nombres Fibonatch)
J'ai essayé d'implémenter PPO en Python
Python: j'ai essayé le problème du voyageur de commerce
Livre Wrangle x Python Je l'ai essayé [1]
Mayungo's Python Learning Episode 8: J'ai essayé l'entrée
[Python] J'ai essayé de calculer TF-IDF régulièrement
J'ai essayé de gratter la météo Yahoo (édition Python)
J'ai essayé de toucher Python (syntaxe de base)