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 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 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 Day87 ab Null "1512. Anzahl der guten Paare"
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!
139. Word Break Der Schwierigkeitsgrad ist Mittel. Dies ist ein Auszug aus Leet Code 60-Fragen, die ich zur Vorbereitung von Codierungsinterviews lösen möchte.
Das Problem ist, dass bei einer nicht leeren Zeichenfolge "s" und einem Wörterbuch "wordDict", das eine Liste nicht leerer Wörter enthält, das "s" in einer durch Leerzeichen getrennten Folge von einem oder mehreren Wörterbuchwörtern vorliegt. Es geht darum festzustellen, ob es aufgeteilt werden kann.
Example 1:
Input: s = "leetcode", wordDict = ["leet", "code"] Output: true Explanation: Return true because "leetcode" can be segmented as "leet code".
Example 2:
Input: s = "applepenapple", wordDict = ["apple", "pen"] Output: true Explanation: Return true because "applepenapple" can be segmented as "apple pen apple". Note that you are allowed to reuse a dictionary word.
Example 3:
Input: s = "catsandog", wordDict = ["cats", "dog", "sand", "and", "cat"] Output: false
class Solution:
def wordBreak(self, s: str, wordDict: List[str]) -> bool:
dp = [True]
for i in range(1,len(s)+1):
for j in wordDict:
if i >= len(j) and s[i-len(j):i] == j and dp[i-len(j)] == True:
dp.append(True)
break
if len(dp) <= i:
dp.append(False)
return dp[-1]
# Runtime: 28 ms, faster than 98.48% of Python3 online submissions for Word Break.
# Memory Usage: 14 MB, less than 36.33% of Python3 online submissions for Word Break.
Da es sich um ein häufiges DP-Problem handelt, habe ich geschrieben, dass True zurückgegeben wird, wenn die Bedingungen erfüllt sind. Ich denke, es ist wichtiger, in der Lage zu sein, richtig zu konditionieren, als ein so extrem schwieriges Problem zu sein.
Aber was ist, wenn DP auf ein Problem stößt? Wie war es? Bin ich der einzige, der dazu neigt, neben mir zu sein? Ich denke, es ist eher eine Frage des Denkens als eines Algorithmus.
Ich habe den Wunsch, das Problem relativ gut zu lösen, daher wäre es schön, wenn ein solches Projekt irgendwo durchgeführt werden könnte.
Das war's für diese Zeit. Danke für deine harte Arbeit.
Recommended Posts