Es scheint, dass Codierungstests in Ingenieurinterviews im Ausland durchgeführt werden, und in vielen Fällen besteht die Hauptsache darin, bestimmte Funktionen und Klassen entsprechend dem Thema zu implementieren.
Anscheinend ergreifen viele Ingenieure Maßnahmen auf der Website namens LetCode.
Es ist eine Site, die die Algorithmusleistung trainiert, die dem Codierungstest standhält, der in der frühen Geschichte durchgeführt wurde, und es ist ein unvermeidlicher Weg für diejenigen, die eine Karriere bei einem ausländischen Technologieunternehmen aufbauen möchten.
Ich habe es groß geschrieben, aber ich habe im Moment keine Pläne für ein solches Interview.
Als IT-Ingenieur wäre es jedoch besser, die gleiche Algorithmusleistung wie eine Person zu haben. Daher möchte ich das Problem unregelmäßig lösen und die Methode, die ich damals dachte, als Memo aufschreiben.
Ich löse es mit Python3.
Letztes Mal Leet Code Day 60 ab Null "1481. Geringste Anzahl eindeutiger Ganzzahlen nach K-Entfernungen"
Im Moment priorisiere ich das Medium der 100 beliebtesten Fragen. Easy wurde gelöst. Wenn Sie interessiert sind, gehen Sie bitte zum Tisch.
Twitter Ich mache es.
Der Schwierigkeitsgrad ist einfach. Angesichts der 32-Bit-Ganzzahl mit Vorzeichen "x" besteht das Problem darin, einen Algorithmus zu entwerfen, der die Umkehrung der Ganzzahl berechnet.
Input: 123 Output: 321
Input: -123 Output: -321
Input: 120 Output: 21
Wenn Sie im Fall von Python Slices und "abs" verwenden, können Sie Elemente angeben und absolute Werte verwalten. Ich denke, dies ist relativ einfach zu lösen.
Ich kenne keine anderen Sprachen, aber es kann üblich sein, mit Stapeln zu lösen.
Da diesmal davon ausgegangen wird, dass es sich um eine 32-Bit-Ganzzahl handelt, ist es besser, im Voraus zu prüfen, ob sie überläuft, auch wenn vor Beginn der Verarbeitung eine weitere Ziffer hinzugefügt wird.
In Python gibt es keinen Maximalwert für den Typ int, sodass Sie so viel berechnen können, wie Sie über Speicher verfügen. Sie müssen es also selbst wie folgt einstellen.
max_32 = 2**31 - 1
Wenn x
zu Beginn größer als dieser Wert ist, wird es ordnungsgemäß klassifiziert, wenn 0 bedingungslos zurückgegeben wird.
Und für den Zweig danach, wenn es sich um einen positiven Wert handelt, nehmen Sie das Element von hinten auf. Wenn es ein negativer Wert ist, nehmen Sie das Element vom Gegenteil des absoluten Wertes auf und fügen Sie vor dem Ersetzen -
hinzu. ..
Wenn der Wert in Python negativ ist und Sie am Anfang des zuzuweisenden Elements -
hinzufügen, befindet es sich auch nach dem erneuten Invertieren im Zustand mit -
.
Ist es nicht in Ordnung, die invertierte Version in die Einschlussnotation zu schreiben? Sie mögen das denken, aber es besteht immer noch die Möglichkeit eines Überlaufs, wenn der Prozess allein damit abgeschlossen ist.
Wenn es also zum letzten Zweig überzulaufen scheint, geben Sie 0 zurück und geben Sie den invertierten Wert nur in anderen Fällen zurück, und Sie sind fertig.
Das Folgende ist eine Zusammenfassung dieser Reihe von Schritten.
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.
Ich habe übrigens einen neuen Blog gestartet. Ich habe vor, weiterhin Informationen über Qiita zu senden, aber wenn Sie interessiert sind, verwenden Sie bitte das Profil, da ich es wie ein Gadget-Blog mit Technologie schreiben möchte, mit der Sie mit entspannten Inhalten schreiben können.
Bis hierher für diese Zeit. Danke für deine harte Arbeit.
Recommended Posts