@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.
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)
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
--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.
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
Recommended Posts