AlgoExpert TS-Lösungen
Dieses Repository enthält einige Lösungen für die Herausforderungen von AlgoExpert Coding Questions.
Notiz:
Ich habe noch nicht alle Herausforderungen abgeschlossen und aktualisiere dieses Repository ständig mit neuen Lösungen, neuen Strukturen, neuen Tests usw. Wenn Sie also die neuesten Änderungen sehen möchten, überprüfen Sie die letzte Herausforderung, die als abgeschlossen markiert ist im Abschnitt mit der Herausforderungsliste unten.
? Einfach (31) | ? Mittel (73) | ? Hart (58) | ? Sehr schwer (38) |
---|---|---|---|
|
|
|
|
Mehr...
| Mehr...
| Mehr...
| Mehr...
|
(zurück nach oben)
Automatische Tests nach jedem Commit – mit Git Hooks und Jest
Automatische Tests nach jedem Push – mit Github Actions und Jest
Gemeinsamer Ordner – um Ihnen bei der Wiederverwendung von Code zu helfen
Für jede Herausforderung gibt es einen eigenen Ordner , der Ihnen bei der Organisation Ihrer Lösungen hilft
Jede Herausforderung verfügt über eine eigene Testdatei – um Ihnen bei der Durchführung der Tests für eine bestimmte Herausforderung zu helfen
Jede Herausforderung verfügt über eine eigene Falltestdatei – um Ihnen bei der Organisation Ihrer Testfälle zu helfen
Jede Herausforderung verfügt über eine eigene README.md-Datei – um Ihnen das Verständnis der Herausforderung zu erleichtern
Für jede Herausforderung gibt es eine eigene Lösungsdatei , die Ihnen beim Verfassen Ihrer Lösung hilft
Einfaches Testen Ihrer Lösung – erstellen Sie einfach eine neue Lösungsdatei und aktualisieren Sie die Testdatei mit Ihrer Lösung
Makefile – um Ihnen bei der Durchführung der Tests zu helfen, neue Herausforderungen zu erstellen und Ihre Lösungen festzuschreiben
Das Festschreiben Ihrer Lösung ist ganz einfach – führen Sie einfach make commit
aus und es wird mit der Meldung feat(CHALLENGE_NAME): add solution {SOLUTION_NUMBER}
Es ist einfach, neue Herausforderungen zu erstellen – führen Sie einfach make new
aus und der Ordner, die Dateien und die README.md-Datei werden mithilfe von Vorlagen für Sie erstellt
Einfache Erstellung neuer Lösungen – führen Sie einfach make new-solution
aus und die Lösungsdatei wird mithilfe von Vorlagen für Sie erstellt
Die Tests sind einfach durchzuführen – führen Sie einfach make test
aus und alle Tests werden ausgeführt
Sie können die Vorlagen anpassen – aktualisieren Sie einfach den Ordner scripts/templates
Einfaches Debuggen in VSCode – es gibt eine launch.json
Datei mit einer Debug-Konfiguration für die aktuell geöffnete Challenge-Registerkarte in VSCode
Automatische Erkennung der letzten abgeschlossenen Herausforderung zum Erstellen einer neuen Lösung, wenn der Befehl make new-solution
ausgeführt wird
Erkennen Sie automatisch die nächste zu erledigende Herausforderung, um bei der Ausführung des Befehls make new
“ eine neue Herausforderung zu erstellen
Die Lösung zur automatischen Aktualisierung wurde beim Ausführen des Befehls make new-solution
getestet
(zurück nach oben)
Replizieren Sie die Funktionszuweisung von solution-0.ts
in eine neue Datei, wenn Sie den Befehl make new-solution
ausführen
Öffnen Sie nach dem Erstellen einer neuen Herausforderung alle neuen Dateien in VSCode
Aktualisieren Sie alle Herausforderungen mit der neuen Struktur, nachdem Sie die Herausforderungsliste fertiggestellt haben
Automatische Aktualisierung der Anzahl der in jedem Level abgeschlossenen Herausforderungen nach Abschluss jeder Herausforderung, wenn der Befehl make commit
ausgeführt wird
Verschieben Sie Root-Konfigurationsdateien in einen .config
Ordner
Erstellen Sie einen docs
-Ordner mit einer README.md
Datei mit einigen Tipps und Tricks
(zurück nach oben)
Meine Methode Zur Lösung der Herausforderungen gilt:
Vorbereitung
Erstellen Sie den Challenge-Ordner und die Dateien (mit dem Befehl make new
“).
1. Schritt
Lesen Sie die Beschreibung der Herausforderung
Zeichnen Sie eine Lösung
Schreiben Sie die Lösung in TypeScript, ohne sich die Lösungshinweise anzusehen
Führen Sie die Tests aus (mit dem Befehl make test-changed
).
Refaktorieren Sie die Lösung
Wiederholen Sie die Schritte 4 und 5, bis alle Tests erfolgreich sind
Bewerten Sie die Komplexität der Lösung
Festschreiben der Lösung (mit dem Befehl make commit
)
2. Schritt
Überprüfen Sie die Lösungshinweise
Vergleichen Sie meine Lösung mit den Lösungshinweisen
Versuchen Sie, meine Lösung zu verbessern oder basierend auf den Lösungshinweisen eine neue zu erstellen (mit dem Befehl make new-solution
).
Wiederholen Sie die Schritte 4 bis 10, bis ich mit der Lösung zufrieden bin
Festschreiben der Lösung (mit dem Befehl make commit
)
3. Schritt
Sehen Sie sich das Lösungsvideo an
Implementieren Sie andere Lösungen aus dem Video oder überarbeiten Sie meine Lösung basierend auf dem Video
Festschreiben der Lösung (mit dem Befehl make commit
)
Flussdiagramm LR
START((Vorbereitung)) --> eins
Unterabsatz eins[1. Schritt]
A[Lesen] -> B[Zeichnen]
B -> C[Code]
C -> D[Tests]
D -> C
D -> I[Komplexität]
I -> R[Commit]
Ende
Unterabsatz zwei[2. Schritt]
R -> J[Hinweise]
J -> K[Vergleichen]
K -> L[Refaktor]
L -> M[Tests]
M -> L
M -> S[Commit]
Ende
Unterabsatz drei[3. Schritt]
S -> N[Video]
N -> O[Code]
O -> P[Code/Refactor]
P -> Q[Tests]
Q -> P
Q -> T[Commit]
Ende
eins -.-> zwei
zwei -.-> drei
drei -> End(((End)))
Laden(zurück nach oben)
Node.js
Typoskript
Scherz
(zurück nach oben)
Node.js
(zurück nach oben)
Git-Klon [email protected]:filipe1309/algoexpert-solutions.git
cd algoexpert-solutions
make installieren
(zurück nach oben)
Ich habe ein Makefile
erstellt, um Ihnen bei der Durchführung der Tests zu helfen.
Führen Sie alle Tests durch:
Test machen
Führen Sie einen bestimmten Test durch:
Machen Sie den Test t=CHALLENGE_NAME
Beispiel:
make test t=two-number-sum
Führen Sie geänderte Tests durch:
testgeändert machen
(zurück nach oben)
Ich habe auch ein Makefile
mit einigen zusätzlichen Befehlen erstellt.
neu erstellen [n=CHALLENGE_NAME] [l=CHALLENGE_LEVEL] [c=CHALLENGE_CATEGORY]
Beispiel:
make new
(füllen Sie die Eingabeaufforderungen aus) ODERmake new n=two-number-sum l=easy c=arrays
Schwierigkeitsgrade:
easy
,medium
,hard
,very-hard
Dadurch wird Folgendes erstellt:
ein Ordner ( src/easy/two-number-sum
)
eine Datei solution-0.ts
(die Datei, in die Sie Ihre Lösung schreiben; Sie können bei Bedarf weitere erstellen und die Testdatei aktualisieren)
eine Testdatei „ solution.spec.ts
eine Falltestdatei cases.ts
eine README.md
Datei
commit ausführen [m=COMMIT_MESSAGE]
Beispiel:
make commit m="feat: add two number sum solution"
Wenn Sie das Argumentm
nicht übergeben, wird es mit der Nachricht festgeschrieben
feat(CHALLENGE_NAME): add solution {SOLUTION_NUMBER}
Neue Lösung erstellen [n=CHALLENGE_NAME_SNAKE] [l=CHALLENGE_LEVEL_LOWER]
Beispiel:
make new-solution [l=easy] [n=two-number-sum]
ODERmake new-solution
(die Eingabeaufforderungen ausfüllen)
Dadurch wird eine neue Lösungsdatei solution-{SOLUTION_NUMBER}.ts
erstellt und die Testdatei aktualisiert.
Wenn
solution-0.ts
bereits vorhanden ist, wirdsolution-1.ts
erstellt und die Datei „index.ts“ und die Testdatei aktualisiert. Und so weiter...
Hilfebefehl:
Hilfe leisten
(zurück nach oben)
Pull-Anfragen sind willkommen. Bei größeren Änderungen öffnen Sie bitte zunächst ein Problem, um zu besprechen, was Sie ändern möchten.
Bitte stellen Sie sicher, dass Sie die Tests entsprechend aktualisieren.
(zurück nach oben)
MIT
(zurück nach oben)
AlgoExpert
Neujahrsgeschenk – Kuratierte Liste der 75 wichtigsten LeetCode-Fragen, um Zeit zu sparen
ShubcoGen-Vorlage™
Git-Hooks ohne zusätzliche Abhängigkeiten wie Husky im Node.js-Projekt
TypeScript + Jest
Testeinheiten mit Node.js, Jest und TypeScript
Was ist die Big-O-Notation erklärt: Raum- und Zeitkomplexität
Path Mapping ohne TypeScript verwenden
Pfadkartierung
Modulauflösung
Die Levenshtein-Distanzgleichung für Anfänger verstehen
Problem der stabilen Ehe – Numberphile
Problem der stabilen Ehe (der mathematische Teil)
(zurück nach oben)
Fertig mit :heart: von Filipe Leuch Bonfim ?
(zurück nach oben)