AlgoExpert TS Solutions
Ce référentiel contient quelques solutions aux défis d'AlgoExpert Coding Questions.
Note:
Je n'ai pas encore terminé tous les défis et je mets constamment à jour ce référentiel avec de nouvelles solutions, de nouvelles structures, de nouveaux tests, etc. Donc, si vous voulez voir les changements les plus récents, vérifiez le dernier défi marqué comme terminé. dans la section liste des défis ci-dessous.
? Facile (31) | ? Moyen (73) | ? Difficile (58) | ? Très dur (38) |
---|---|---|---|
|
|
|
|
Plus...
| Plus...
| Plus...
| Plus...
|
(retour en haut)
Tests automatiques après chaque commit - en utilisant Git Hooks et Jest
Tests automatiques après chaque push - en utilisant Github Actions et Jest
Dossier commun - pour vous aider à réutiliser le code
Chaque défi a son propre dossier - pour vous aider à organiser vos solutions
Chaque défi possède son propre fichier de test - pour vous aider à exécuter les tests pour un défi spécifique
Chaque défi possède son propre fichier de cas de test - pour vous aider à organiser vos cas de test
Chaque défi possède son propre fichier README.md - pour vous aider à comprendre le défi
Chaque défi a son propre fichier de solution - pour vous aider à rédiger votre solution
Testez facilement votre solution : créez simplement un nouveau fichier de solution et mettez à jour le fichier de test avec votre solution.
Makefile - pour vous aider à exécuter les tests, à créer de nouveaux défis et à valider vos solutions
Validez facilement votre solution : exécutez simplement make commit
et elle sera validée avec le message feat(CHALLENGE_NAME): add solution {SOLUTION_NUMBER}
Créez facilement de nouveaux défis : exécutez simplement make new
et il créera le dossier, les fichiers et le fichier README.md pour vous, à l'aide de modèles.
Facile à créer de nouvelles solutions - exécutez simplement make new-solution
et il créera le fichier de solution pour vous, à l'aide de modèles
Facile à exécuter les tests - exécutez simplement make test
et il exécutera tous les tests
Vous pouvez personnaliser les modèles - mettez simplement à jour le dossier scripts/templates
Facile à déboguer dans VSCode - il existe un fichier launch.json
avec une configuration de débogage pour l'onglet de défi ouvert actuel dans VSCode
Découverte automatique du dernier défi terminé pour créer une nouvelle solution lors de l'exécution de la commande make new-solution
Découverte automatique du prochain défi à relever pour créer un nouveau défi lors de l'exécution de la commande make new
La solution de mise à jour automatique a été testée lors de l'exécution de la commande make new-solution
(retour en haut)
Répliquer l'assignation de fonction solution-0.ts
vers un nouveau fichier lors de l'exécution de la commande make new-solution
Après avoir créé un nouveau défi, ouvrez tous les nouveaux fichiers dans VSCode
Mettez à jour tous les défis avec la nouvelle structure après avoir terminé la liste des défis
Mise à jour automatique du nombre de défis terminés dans chaque niveau après avoir terminé chaque défi lors de l'exécution de la commande make commit
Déplacez les fichiers de configuration racine vers un dossier .config
Créez un dossier docs
avec un fichier README.md
avec quelques trucs et astuces
(retour en haut)
Ma méthode pour résoudre les défis est :
Préparation
Créez le dossier et les fichiers du défi (à l'aide de la commande make new
)
1ère étape
Lire la description du défi
Dessiner une solution
Écrivez la solution en TypeScript sans regarder les astuces de solution
Exécutez les tests (en utilisant la commande make test-changed
)
Refactoriser la solution
Répétez les étapes 4 et 5 jusqu'à ce que tous les tests réussissent
Évaluer la complexité de la solution
Validez la solution (à l'aide de la commande make commit
)
2ème étape
Vérifiez les conseils de solution
Comparez ma solution avec les astuces de solution
Essayez d' améliorer ma solution ou d'en créer une nouvelle en fonction des astuces de solution (en utilisant la commande make new-solution
)
Répétez les étapes 4 à 10 jusqu'à ce que je sois satisfait de la solution
Validez la solution (à l'aide de la commande make commit
)
3ème étape
Regardez la vidéo de la solution
Implémenter d'autres solutions à partir de la vidéo ou refactoriser ma solution en fonction de la vidéo
Validez la solution (à l'aide de la commande make commit
)
organigramme LR
DÉBUT((Préparation)) --> un
sous-graphe un[1ère étape]
A[Lire] --> B[Dessiner]
B --> C[Code]
C --> D[Tests]
D --> C
D --> I[Complexité]
Je --> R[Commit]
fin
sous-graphe deux[2ème étape]
R --> J[Indices]
J --> K[Comparer]
K --> L[Refactor]
L --> M[Tests]
M --> L
M --> S[Commettre]
fin
sous-graphe trois[3ème étape]
S --> N[Vidéo]
N --> O[Code]
O --> P[Code/Refactor]
P --> Q[Tests]
Q --> P
Q --> T[Commit]
fin
un -> deux
deux -> trois
trois --> Fin(((Fin)))
Chargement(retour en haut)
Noeud.js
Manuscrit
Plaisanter
(retour en haut)
Noeud.js
(retour en haut)
git clone [email protected]:filipe1309/algoexpert-solutions.git
cd algoexpert-solutions
faire installer
(retour en haut)
J'ai créé un Makefile
pour vous aider à exécuter les tests.
Exécutez tous les tests :
faire un test
Exécutez un test spécifique :
faire le test t=CHALLENGE_NAME
Exemple :
make test t=two-number-sum
Exécutez les tests modifiés :
faire un test modifié
(retour en haut)
J'ai également créé un Makefile
avec quelques commandes supplémentaires.
créer un nouveau [n=CHALLENGE_NAME] [l=CHALLENGE_LEVEL] [c=CHALLENGE_CATEGORY]
Exemple:
make new
(remplissez les invites) OUmake new n=two-number-sum l=easy c=arrays
Niveaux :
easy
,medium
,hard
,very-hard
Cela créera :
un dossier ( src/easy/two-number-sum
)
un fichier solution-0.ts
(le fichier dans lequel vous écrirez votre solution, vous pouvez en créer d'autres si vous le souhaitez et mettre à jour le fichier de test)
un fichier de test solution.spec.ts
un fichier de test de cas cases.ts
un fichier README.md
faire un commit [m=COMMIT_MESSAGE]
Exemple :
make commit m="feat: add two number sum solution"
si vous ne transmettez pas l'argumentm
, il sera validé avec le message
feat(CHALLENGE_NAME): add solution {SOLUTION_NUMBER}
créer une nouvelle solution [n=CHALLENGE_NAME_SNAKE] [l=CHALLENGE_LEVEL_LOWER]
Exemple :
make new-solution [l=easy] [n=two-number-sum]
OUmake new-solution
(remplissez les invites)
Cela créera un nouveau fichier de solution solution-{SOLUTION_NUMBER}.ts
et mettra à jour le fichier de test.
Si
solution-0.ts
existe déjà, il créerasolution-1.ts
et mettra à jour le fichier index.ts et le fichier de test. Et ainsi de suite...
Commande d'aide :
apporter de l'aide
(retour en haut)
Les demandes de tirage sont les bienvenues. Pour les changements majeurs, veuillez d'abord ouvrir un ticket pour discuter de ce que vous souhaitez changer.
Veuillez vous assurer de mettre à jour les tests le cas échéant.
(retour en haut)
MIT
(retour en haut)
AlgoExpert
Cadeau du Nouvel An - Liste organisée des 75 meilleures questions LeetCode pour gagner du temps
Modèle ShubcoGen™
Git Hooks sans dépendances supplémentaires comme Husky dans le projet Node.js
TypeScript + plaisanterie
Tests unitaires avec Node.js, Jest et TypeScript
Qu'est-ce que la notation Big O expliquée : complexité spatiale et temporelle
Utiliser le mappage de chemin sans TypeScript
Cartographie des chemins
Résolution des modules
Comprendre l'équation de distance de Levenshtein pour les débutants
Problème de mariage stable
Problème de mariage stable (le bit mathématique)
(retour en haut)
Fini avec :heart: de Filipe Leuch Bonfim ?
(retour en haut)