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 algorithmische Leistung trainiert, die dem Codierungstest standhält, der in der frühen Geschichte durchgeführt wird, 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 ist 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 84 ab Null "142. Linked List Cycle II"
Twitter Ich mache es.
** Technischer Blog Gestartet! !! ** ** ** Ich denke, die Technologie wird über LetCode, Django, Nuxt usw. schreiben. ** Dies ist schneller zu aktualisieren **, vielen Dank für Ihre Mitarbeit!
Der Schwierigkeitsgrad ist Mittel. Dies ist ein Auszug aus LeetCode 60-Fragen, die ich zur Vorbereitung des Codierungsinterviews lösen möchte.
Das Problem ist, dass Sie zuerst eine Zeichenfolge erhalten, beispielsweise die Zeichenfolge "PAYPALISHIRING". Diese Zeichenketten werden in einem Zick-Zack-Muster auf einer vorbestimmten Anzahl von Zeilen geschrieben, wie unten gezeigt. (Es ist eine gute Idee, dieses Muster zur besseren Lesbarkeit in einer festen Schriftart anzuzeigen.)
P A H N
A P L S I I G
Y I R
Wenn Sie diese Zeile für Zeile lesen, erhalten Sie "PAHNAPLSIIGYIR".
Schreiben Sie den Code, der diese Zeichenfolgen verwendet und konvertiert, indem Sie die Anzahl der Zeilen angeben.
string convert(string s, int numRows).
Example 1:
Input: s = "PAYPALISHIRING", numRows = 3 Output: "PAHNAPLSIIGYIR"
Example 2:
Input: s = "PAYPALISHIRING", numRows = 4 Output: "PINALSIGYAHRPI" Explanation:
P I N
A L S I G
Y A H R
P I
Übrigens habe ich die Liste der Probleme geklont, aber das Problem, das ich gelöst habe, war zu diesem Zeitpunkt 23/60.
So ↓
Es ist wichtig, Spaß beim Lösen zu haben, daher möchte ich alles in einem angemessenen Bereich beantworten. Oh, und es gibt einige Probleme, die nicht ohne Abonnement gelöst werden können. Selbst wenn ich mich anmelde, werde ich es zunächst überspringen, da es ein Recht ist, ein Problem zu posten.
class Solution:
def convert(self, s: str, numRows: int) -> str:
if numRows == 1 or numRows >= len(s):
return s
num,step,ans = 0,0,['']*numRows
for w in s:
ans[num] += w
if num == 0:
step = 1
elif num == numRows - 1:
step = -1
num += step
return "".join(ans)
# Runtime: 64 ms, faster than 65.13% of Python3 online submissions for ZigZag Conversion.
# Memory Usage: 14.1 MB, less than 10.13% of Python3 online submissions for ZigZag Conversion.
Bereiten Sie so viele Arrays vor, wie es "numRows" gibt, und fügen Sie jedes hinzu. Durch Verwalten der Zunahme / Abnahme mit "Schritt" nach dem Hinzufügen, zum Beispiel im Testfall
PAYPALISHIRING
In diesem Fall können Sie sehen, dass es wie unten gezeigt in das Array eingefügt werden kann.
['PAHN', 'APLSIIG', 'YIR']
Wenn Sie schließlich `` join () with
'' ausführen, wird das
"PAHNAPLSIIGYIR" `von str sicher zurückgegeben und so weiter.
Dies ist 24/60. Das war's für diese Zeit. Danke für deine harte Arbeit.
Recommended Posts