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.
Letztes Mal Leet Code Day 40 ab Null "114. Binärbaum auf verknüpfte Liste reduzieren"
Im Moment löse ich das Medium mit den 100 beliebtesten Fragen. Easy wurde gelöst. Wenn Sie interessiert sind, gehen Sie bitte zum Tisch.
Twitter Ich mache es.
Das Problem ist, wenn Sie eine codierte Zeichenfolge angeben, lassen Sie uns einen Algorithmus entwerfen, der diese decodierte Zeichenfolge zurückgibt.
Die Codierungsregel lautet k [encoded_string]. Der encoding_string in den eckigen Klammern wird genau k-mal wiederholt. Beachten Sie, dass k garantiert eine positive ganze Zahl ist.
Sie können davon ausgehen, dass die Eingabezeichenfolge immer gültig ist. Es gibt keine zusätzlichen Leerzeichen und eckige Klammern sind gut geformt.
Weiterhin kann davon ausgegangen werden, dass die Originaldaten keine Zahlen enthalten und dass die Zahlen nur diesen Wiederholungszahlen k entsprechen. Zum Beispiel gibt es keine Eingabe wie 3a oder 2 [4].
Ein Beispiel ist wie folgt.
s = "3[a]2[bc]", return "aaabcbc". s = "3[a2[c]]", return "accaccacc". s = "2[abc]3[cd]ef", return "abcabccdcdcdef".
class Solution:
def decodeString(self, s: str) -> str:
stack,curNum,curStr = [],0,''
for st in s:
if st == "[":
stack.append(curStr)
stack.append(curNum)
curStr = ""
curNum = 0
elif st == "]":
num = stack.pop()
preStr = stack.pop()
curStr = preStr + num*curStr
elif st.isdigit():
curNum = curNum*10 + int(st)
else:
curStr += st
return curStr
# Runtime: 20 ms, faster than 98.29% of Python3 online submissions for Decode String.
# Memory Usage: 13.9 MB, less than 5.77% of Python3 online submissions for Decode String.
Ich habe es mit Stack gelöst. Ich habe die Elemente von Anfang an mit der for-Anweisung geleckt und die Verarbeitung entsprechend den angegebenen Elementen geändert. Es ist schnell ...
Es fühlt sich gut an, also ist es diesmal bis hierher! Danke für deine harte Arbeit.
Recommended Posts