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.
Als Gegenmaßnahme scheint eine Website namens Let Code Maßnahmen zu ergreifen.
Eine Site, die algorithmische Leistung trainiert, die Codierungstests standhält, über die früh gesprochen wird.
Ich denke, es ist besser, die Algorithmuskraft eines Menschen zu haben, also werde ich das Problem unregelmäßig lösen und die Methode, die ich damals dachte, als Memo aufschreiben.
Grundsätzlich möchte ich die einfache Akzeptanz in absteigender Reihenfolge lösen.
Letztes Mal Leet Code Day1 ab Null "1389. Zielarray in der angegebenen Reihenfolge erstellen"
Input: address = "1.1.1.1" Output: "1[.]1[.]1[.]1"
Input: address = "255.100.50.0" Output: "255[.]100[.]50[.]0"
Ersetzen Sie einfach die. In der angegebenen IP-Adresse durch [.].
class Solution:
def defangIPaddr(self, address: str) -> str:
address = address.replace('.','[.]')
return address
# Runtime: 24 ms, faster than 88.37% of Python3 online submissions for Defanging an IP Address.
# Memory Usage: 14 MB, less than 100.00% of Python3 online submissions for Defanging an IP Address.
Verwenden Sie einfach replace () und Sie sind fertig!
Ich habe nachgedacht, aber ist es nicht schneller, direkt zurückzukehren, ohne zuerst eine Adresse zuzuweisen? Ich denke und schreibe es neu.
class Solution:
def defangIPaddr(self, address: str) -> str:
return address.replace('.','[.]')
# Runtime: 24 ms, faster than 88.37% of Python3 online submissions for Defanging an IP Address.
# Memory Usage: 13.7 MB, less than 100.00% of Python3 online submissions for Defanging an IP Address.
Es wurde nur etwas weniger Speicher benötigt.
Wenn Sie einen kurzen Blick auf Discuss werfen, ist dies ein weiterer wichtiger Punkt. Verwenden Sie die Split-Funktion, um sie der Liste zuzuweisen, und verwenden Sie dann die Join-Funktion, um "[.]" Zwischen die Zahlen einzufügen.
class Solution:
def defangIPaddr(self, address: str) -> str:
return "[.]".join(address.split("."))
# Runtime: 28 ms, faster than 65.40% of Python3 online submissions for Defanging an IP Address.
# Memory Usage: 13.7 MB, less than 100.00% of Python3 online submissions for Defanging an IP Address.
Die Split-Funktion und die Join-Funktion haben übrigens die folgenden Spezifikationen.
str.split(sep=None, maxsplit=-1) Gibt eine Liste von Wörtern zurück, die durch Sep als Trennzeichen getrennt sind. Wenn maxsplit angegeben ist, wird es auf maxsplit-Zeiten aufgeteilt (dh die Liste enthält maximal maxsplit + 1 Elemente). Wenn maxsplit nicht angegeben ist oder -1, gibt es keine Begrenzung für die Anzahl der Teilungen (so viel wie möglich teilen). Wenn sep angegeben wird, werden aufeinanderfolgende Trennzeichen nicht gruppiert und gelten als separate leere Zeichenfolgen (z. B. '1 ,, 2'.split (', ') ist [' 1 ',' ',' 2 '] wird zurückgegeben). Das sep-Argument kann aus mehreren Zeichen bestehen (z. B. '1 <> 2 <> 3'.split (' <> ') gibt [' 1 ',' 2 ',' 3 '] zurück). Das Teilen einer leeren Zeichenfolge mit einem Trennzeichen gibt [''] zurück. Zum Beispiel:
'1,2,3'.split(',')
['1', '2', '3']
'1,2,3'.split(',', maxsplit=1)
['1', '2,3']
'1,2,,3,'.split(',')
['1', '2', '', '3', '']
Wenn> sep nicht angegeben ist oder None, wird ein anderer Aufteilungsalgorithmus angewendet. Aufeinanderfolgende Leerzeichen werden als eine Begrenzung betrachtet. Auch wenn am Anfang oder Ende der Zeichenfolge ein Leerzeichen steht, wird die leere Zeichenfolge am Anfang oder Ende des Ergebnisses nicht eingefügt. Wenn Sie eine leere Zeichenfolge oder eine Zeichenfolge mit nur Leerzeichen durch das Trennzeichen Keine teilen, wird daher [] zurückgegeben. Zum Beispiel:
'1 2 3'.split()
['1', '2', '3']
'1 2 3'.split(maxsplit=1)
['1', '2 3']
' 1 2 3 '.split()
['1', '2', '3']
str.join(iterable) Gibt eine verkettete Zeichenfolge von Zeichenfolgen in iterable zurück. Wenn iterable einen Wert ohne Zeichenfolge hat, z. B. ein Byte-Objekt, wird ein TypeError ausgelöst. Das Trennzeichen zwischen den Elementen ist die Zeichenfolge, die diese Methode bereitstellt.
Ich denke, es ist gut zu lernen, wenn man kleine Funktionen verwendet, aber wenn es um dieses Problem geht, denke ich, dass es einfacher und leichter zu verstehen ist, die Ersetzungsfunktion zu verwenden.
Recommended Posts