A tagged practice repository for data structures and algorithms with a CLI tool for finding and managing practice problems.
Add tags to your files using this format at the top:
// tags: ['array', 'easy', 'sorting']
Difficulty:
easy
,medium
,hard
Data Structures:
array
,string
,linked-list
,stack
,queue
,tree
,graph
,hash-table
,heap
Algorithms:
sorting
,searching
,recursion
,dynamic-programming
,greedy
,backtracking
bfs
,dfs
,binary-search
,two-pointer
,sliding-window
Problem Types:
counting
,traversal
,optimization
,math
,simulation
- Install dependencies:
npm install
- Make the CLI executable (optional):
chmod +x tag-finder.js
- Add tags to your files and start using the CLI!
node tag-finder.js list
# or
npm run list
node tag-finder.js tags
# Find files with ANY of these tags
node tag-finder.js find array easy
# Find files with ALL of these tags (AND logic)
node tag-finder.js find array easy --all
# Just show count
node tag-finder.js find array --count
# Random from all tagged files
node tag-finder.js random
# Random from specific tags
node tag-finder.js random --tags easy array
node tag-finder.js stats
# Find all easy problems
node tag-finder.js find easy
# Find array problems that are medium difficulty
node tag-finder.js find array medium --all
# Get a random easy problem to practice
node tag-finder.js random --tags easy
# Show what tags you're using
node tag-finder.js tags
/algos
- bfs.js // tags: ['graph', 'traversal', 'bfs', 'medium']
- dfs.js // tags: ['graph', 'traversal', 'dfs', 'medium']
/data-structures
- linked-list.js // tags: ['linked-list', 'medium']
/exercise
- Count-triplet.js // tags: ['array', 'easy', 'counting']
- factorial.js // tags: ['recursion', 'easy', 'math']