Ich habe jeden Tag LeetCode ausprobiert. 7. Reverse Integer (Python, Go)

Einführung

@Ishishow betreibt eine kostenlose englische Word-Site E-tan.

Ich möchte jeden Tag an Letcode arbeiten, um meine Fähigkeiten als Programmierer zu verbessern und meine eigene Art der Lösung zu finden.

Was ist Leetcode?

leetcode.com Dies ist die Praxis des Codierens von Interviews für Softwareentwickler. Insgesamt wurden mehr als 1.500 Codierungsfragen gestellt, und es scheint, dass in tatsächlichen Interviews häufig dieselben Fragen gestellt werden.

Einführung in Go Sprache + Algorithmus Ich werde es mit Golang und Python lösen, um mein Gehirn zu stärken. (Python ist schwach, aber erfahren)

Tag 2 (Problem 07)

Reverse Integer

--Probleminhalt (japanische Übersetzung)

Wenn Sie eine vorzeichenbehaftete 32-Bit-Ganzzahl angeben, ist dies die umgekehrte Ziffer der Ganzzahl.

** Hinweis: ** Angenommen, es handelt sich um eine Umgebung, in der Ganzzahlen im Bereich von 32-Bit-Ganzzahlen mit Vorzeichen gespeichert werden können: [-2 31, 2 31 -1]. Nehmen wir für die Zwecke dieses Problems an, dass die Funktion 0 zurückgibt, wenn die inverse Ganzzahl überläuft.

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

Denkweise

  1. Machen Sie ein positives / negatives Urteil, und wenn es negativ ist, machen Sie es positiv.
  2. Kehren Sie die Zahlen durch Schleifenverarbeitung um
  3. Beschreiben Sie die Verarbeitung von INTMAX und INTMIN. (Überlaufverarbeitung)

Erklärung

  1. Ich habe gerade ein Minus angewendet.
  2. Weisen Sie den durch 10 geteilten Rest einer Variablen mit dem Namen ans → zu und multiplizieren Sie ans mit 10 vor der nächsten Zuweisung (auf diese Weise ist das Gegenteil der Fall!).
  3. Für Go habe ich versucht, das Mathe-Paket zu verwenden!

--Antwortcode

  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
  }

Go und Python-Ausführungszeit

Von links RunTime, Speicher, Sprache. Mach dir keine Sorgen über einen Fehler.

キャプチャ.PNG

Eine andere Lösung

Es scheint einen Weg zu geben, dies durch Umkehren der Zeichen zu lösen. Diese Person hat auch daran gearbeitet, aber es ist einfach. ..

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

Die Manipulation von Strings ist mit Python einfach!

Go kann nicht kompiliert werden, wenn nicht verwendete Variablen und Pakete vorhanden sind

Die Zeichenfolge darf nicht Null sein

Artikel, auf die verwiesen wird

[Anfänger] Fallstricke für diejenigen, die neu in der Go-Sprache sind, Lösungen für Probleme und häufige Fehler

Recommended Posts

Ich habe jeden Tag LeetCode ausprobiert. 7. Reverse Integer (Python, Go)
Ich habe jeden Tag 13 LeetCode ausprobiert. Roman to Integer (Python, Go)
Ich habe jeden Tag 20 LeetCode ausprobiert. Gültige Klammern (Python, Go)
Ich habe jeden Tag LeetCode 9 ausprobiert. Palindrome Number (Python, Go)
Ich habe jeden Tag LeetCode ausprobiert. 1. Zwei Summen (Python, Go)
Ich habe jeden Tag LeetCode ausprobiert. 14. Längstes allgemeines Präfix (Python, Go)
Ich habe jeden Tag LeetCode 21 ausprobiert. Zwei sortierte Listen zusammenführen (Python, Go)
Ich habe jeden Tag LeetCode ausprobiert 26. Duplikate aus sortiertem Array entfernen (Python, Go)
Ich habe es mit Grumpy versucht (Python ausführen).
Ich habe versucht, mit Python Faiss zu laufen, Go, Rust
Ich habe Python> autopep8 ausprobiert
Ich habe Python> Decorator ausprobiert
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, mit Python zu kratzen
Ich habe die C-Erweiterung von Python ausprobiert
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, mit Python zu kratzen
Ich habe versucht, Python zu berühren (Installation)
Ich habe versucht, WebScraping mit Python.
Ich habe versucht, Thonny (Python / IDE) zu verwenden.
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.
Ich habe Line Benachrichtigung in Python versucht
Ich habe die SMTP-Kommunikation mit Python versucht
Ich habe versucht, die Behandlung von Python-Ausnahmen zusammenzufassen
Ich habe versucht, PLSA in Python zu implementieren
Ich habe versucht, Permutation in Python zu implementieren
Wrangle x Python Buch Ich habe es versucht [2]
Ich habe versucht, PLSA in Python 2 zu implementieren
Python3-Standardeingabe habe ich versucht zusammenzufassen
Ich habe versucht, die Bayes'sche Optimierung von Python zu verwenden
Ich habe versucht, mit Python + opencv nicht realistisch zu rendern
Ich habe versucht, die UnityCloudBuild-API von Python zu verwenden
Ich habe versucht, ADALINE in Python zu implementieren
Ich habe eine funktionale Sprache mit Python ausprobiert
Ich habe versucht, mit Python ② (Fibonacci-Zahlenfolge) aufzuklären.
Ich habe versucht, PPO in Python zu implementieren
Python: Ich habe das Problem des Handlungsreisenden ausprobiert
Wrangle x Python Buch Ich habe es versucht [1]
Mayungos Python Learning Episode 8: Ich habe versucht, Eingaben zu machen
[Python] Ich habe versucht, TF-IDF stetig zu berechnen
Ich habe versucht, Yahoo Wetter zu kratzen (Python Edition)
Ich habe versucht, Python zu berühren (grundlegende Syntax)