diff --git a/.generate/main.py b/.generate/main.py index 87c498a..4372397 100755 --- a/.generate/main.py +++ b/.generate/main.py @@ -91,7 +91,10 @@ def main(): f"[{question.title}]({question.url})", solutions, question.difficulty, - ", ".join(f"[{tag.name}](/categories/{tag.slug.upper()}.md)" for tag in question.tags), + ", ".join( + # TODO: Generate category pages as a "filter" page for the README.md file. + # {/categories/tag.slug.upper()}.md + f"[{tag.name}]({tag.url})" for tag in question.tags), ] row = "| " + " | ".join(map(str, columns)) + " |" diff --git a/.generate/questions.py b/.generate/questions.py index 69495d4..6e6d5f9 100644 --- a/.generate/questions.py +++ b/.generate/questions.py @@ -27,6 +27,13 @@ class Tag(BaseModel): slug: str name: str + @property + def url(self) -> str: + """ + Gets the URL to the tag. + """ + return f"https://leetcode.com/tag/{self.slug}" + class Question(BaseModel): """ diff --git a/README.md b/README.md index 6a043a9..e295f52 100644 --- a/README.md +++ b/README.md @@ -5,23 +5,23 @@ This repository contains my solutions to various problems on [LeetCode](https:// Below is the full table containing all the problems I have solved so far. The table is [automatically generated](./.generate/main.py)automatically generated. | # | Title | Solution | Difficulty | Tags | |---| ----- | -------- | ---------- | ---- | -| 1 | [Two Sum](https://leetcode.com/problems/two-sum) | [Java](/solutions/two-sum/Solution.java) | Easy | [Array](/categories/ARRAY.md), [Hash Table](/categories/HASH-TABLE.md) | -| 2 | [Add Two Numbers](https://leetcode.com/problems/add-two-numbers) | [Java](/solutions/add-two-numbers/Solution.java) | Medium | [Linked List](/categories/LINKED-LIST.md), [Math](/categories/MATH.md), [Recursion](/categories/RECURSION.md) | -| 3 | [Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters) | [Java](/solutions/longest-substring-without-repeating-characters/Solution.java) | Medium | [Hash Table](/categories/HASH-TABLE.md), [String](/categories/STRING.md), [Sliding Window](/categories/SLIDING-WINDOW.md) | -| 4 | [Median of Two Sorted Arrays](https://leetcode.com/problems/median-of-two-sorted-arrays) | [Rust (Two Pointers)](/solutions/median-of-two-sorted-arrays/src/bin/two-pointers.rs) | Hard | [Array](/categories/ARRAY.md), [Binary Search](/categories/BINARY-SEARCH.md), [Divide and Conquer](/categories/DIVIDE-AND-CONQUER.md) | -| 5 | [Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring) | [Java](/solutions/longest-palindromic-substring/Solution.java) | Medium | [String](/categories/STRING.md), [Dynamic Programming](/categories/DYNAMIC-PROGRAMMING.md) | -| 6 | [Zigzag Conversion](https://leetcode.com/problems/zigzag-conversion) | [Java](/solutions/zigzag-conversion/Solution.java) | Medium | [String](/categories/STRING.md) | -| 7 | [Reverse Integer](https://leetcode.com/problems/reverse-integer) | [Java](/solutions/reverse-integer/Solution.java) | Medium | [Math](/categories/MATH.md) | -| 8 | [String to Integer (atoi)](https://leetcode.com/problems/string-to-integer-atoi) | [Java](/solutions/string-to-integer-atoi/Solution.java) | Medium | [String](/categories/STRING.md) | -| 9 | [Palindrome Number](https://leetcode.com/problems/palindrome-number) | [Java](/solutions/palindrome-number/Solution.java) | Easy | [Math](/categories/MATH.md) | -| 13 | [Roman to Integer](https://leetcode.com/problems/roman-to-integer) | [Java](/solutions/roman-to-integer/Solution.java) | Easy | [Hash Table](/categories/HASH-TABLE.md), [Math](/categories/MATH.md), [String](/categories/STRING.md) | -| 238 | [Product of Array Except Self](https://leetcode.com/problems/product-of-array-except-self) | [Rust](/solutions/product-of-array-except-self/src/main.rs) | Medium | [Array](/categories/ARRAY.md), [Prefix Sum](/categories/PREFIX-SUM.md) | -| 387 | [First Unique Character in a String](https://leetcode.com/problems/first-unique-character-in-a-string) | [Java](/solutions/first-unique-character-in-a-string/Solution.java), [Java (HashMap)](/solutions/first-unique-character-in-a-string/Solution_HashMap.java) | Easy | [Hash Table](/categories/HASH-TABLE.md), [String](/categories/STRING.md), [Queue](/categories/QUEUE.md), [Counting](/categories/COUNTING.md) | -| 451 | [Sort Characters By Frequency](https://leetcode.com/problems/sort-characters-by-frequency) | [Java](/solutions/sort-characters-by-frequency/Solution.java) | Medium | [Hash Table](/categories/HASH-TABLE.md), [String](/categories/STRING.md), [Sorting](/categories/SORTING.md), [Heap (Priority Queue)](/categories/HEAP-PRIORITY-QUEUE.md), [Bucket Sort](/categories/BUCKET-SORT.md), [Counting](/categories/COUNTING.md) | -| 1048 | [Longest String Chain](https://leetcode.com/problems/longest-string-chain) | [Java](/solutions/longest-string-chain/Solution.java) | Medium | [Array](/categories/ARRAY.md), [Hash Table](/categories/HASH-TABLE.md), [Two Pointers](/categories/TWO-POINTERS.md), [String](/categories/STRING.md), [Dynamic Programming](/categories/DYNAMIC-PROGRAMMING.md) | -| 1487 | [Making File Names Unique](https://leetcode.com/problems/making-file-names-unique) | [Java](/solutions/making-file-names-unique/Solution.java), [Java (RegEx)](/solutions/making-file-names-unique/Solution_regex.java), [Python](/solutions/making-file-names-unique/Solution.py) | Medium | [Array](/categories/ARRAY.md), [Hash Table](/categories/HASH-TABLE.md), [String](/categories/STRING.md) | -| 1608 | [Special Array With X Elements Greater Than or Equal X](https://leetcode.com/problems/special-array-with-x-elements-greater-than-or-equal-x) | [Java](/solutions/special-array-with-x-elements-greater-than-or-equal-x/Solution.java) | Easy | [Array](/categories/ARRAY.md), [Binary Search](/categories/BINARY-SEARCH.md), [Sorting](/categories/SORTING.md) | -| 1636 | [Sort Array by Increasing Frequency](https://leetcode.com/problems/sort-array-by-increasing-frequency) | [Java](/solutions/sort-array-by-increasing-frequency/Solution.java) | Easy | [Array](/categories/ARRAY.md), [Hash Table](/categories/HASH-TABLE.md), [Sorting](/categories/SORTING.md) | +| 1 | [Two Sum](https://leetcode.com/problems/two-sum) | [Java](/solutions/two-sum/Solution.java) | Easy | [Array](https://leetcode.com/tag/array), [Hash Table](https://leetcode.com/tag/hash-table) | +| 2 | [Add Two Numbers](https://leetcode.com/problems/add-two-numbers) | [Java](/solutions/add-two-numbers/Solution.java) | Medium | [Linked List](https://leetcode.com/tag/linked-list), [Math](https://leetcode.com/tag/math), [Recursion](https://leetcode.com/tag/recursion) | +| 3 | [Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters) | [Java](/solutions/longest-substring-without-repeating-characters/Solution.java) | Medium | [Hash Table](https://leetcode.com/tag/hash-table), [String](https://leetcode.com/tag/string), [Sliding Window](https://leetcode.com/tag/sliding-window) | +| 4 | [Median of Two Sorted Arrays](https://leetcode.com/problems/median-of-two-sorted-arrays) | [Rust (Two Pointers)](/solutions/median-of-two-sorted-arrays/src/bin/two-pointers.rs) | Hard | [Array](https://leetcode.com/tag/array), [Binary Search](https://leetcode.com/tag/binary-search), [Divide and Conquer](https://leetcode.com/tag/divide-and-conquer) | +| 5 | [Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring) | [Java](/solutions/longest-palindromic-substring/Solution.java) | Medium | [String](https://leetcode.com/tag/string), [Dynamic Programming](https://leetcode.com/tag/dynamic-programming) | +| 6 | [Zigzag Conversion](https://leetcode.com/problems/zigzag-conversion) | [Java](/solutions/zigzag-conversion/Solution.java) | Medium | [String](https://leetcode.com/tag/string) | +| 7 | [Reverse Integer](https://leetcode.com/problems/reverse-integer) | [Java](/solutions/reverse-integer/Solution.java) | Medium | [Math](https://leetcode.com/tag/math) | +| 8 | [String to Integer (atoi)](https://leetcode.com/problems/string-to-integer-atoi) | [Java](/solutions/string-to-integer-atoi/Solution.java) | Medium | [String](https://leetcode.com/tag/string) | +| 9 | [Palindrome Number](https://leetcode.com/problems/palindrome-number) | [Java](/solutions/palindrome-number/Solution.java) | Easy | [Math](https://leetcode.com/tag/math) | +| 13 | [Roman to Integer](https://leetcode.com/problems/roman-to-integer) | [Java](/solutions/roman-to-integer/Solution.java) | Easy | [Hash Table](https://leetcode.com/tag/hash-table), [Math](https://leetcode.com/tag/math), [String](https://leetcode.com/tag/string) | +| 238 | [Product of Array Except Self](https://leetcode.com/problems/product-of-array-except-self) | [Rust](/solutions/product-of-array-except-self/src/main.rs) | Medium | [Array](https://leetcode.com/tag/array), [Prefix Sum](https://leetcode.com/tag/prefix-sum) | +| 387 | [First Unique Character in a String](https://leetcode.com/problems/first-unique-character-in-a-string) | [Java](/solutions/first-unique-character-in-a-string/Solution.java), [Java (HashMap)](/solutions/first-unique-character-in-a-string/Solution_HashMap.java) | Easy | [Hash Table](https://leetcode.com/tag/hash-table), [String](https://leetcode.com/tag/string), [Queue](https://leetcode.com/tag/queue), [Counting](https://leetcode.com/tag/counting) | +| 451 | [Sort Characters By Frequency](https://leetcode.com/problems/sort-characters-by-frequency) | [Java](/solutions/sort-characters-by-frequency/Solution.java) | Medium | [Hash Table](https://leetcode.com/tag/hash-table), [String](https://leetcode.com/tag/string), [Sorting](https://leetcode.com/tag/sorting), [Heap (Priority Queue)](https://leetcode.com/tag/heap-priority-queue), [Bucket Sort](https://leetcode.com/tag/bucket-sort), [Counting](https://leetcode.com/tag/counting) | +| 1048 | [Longest String Chain](https://leetcode.com/problems/longest-string-chain) | [Java](/solutions/longest-string-chain/Solution.java) | Medium | [Array](https://leetcode.com/tag/array), [Hash Table](https://leetcode.com/tag/hash-table), [Two Pointers](https://leetcode.com/tag/two-pointers), [String](https://leetcode.com/tag/string), [Dynamic Programming](https://leetcode.com/tag/dynamic-programming) | +| 1487 | [Making File Names Unique](https://leetcode.com/problems/making-file-names-unique) | [Java](/solutions/making-file-names-unique/Solution.java), [Java (RegEx)](/solutions/making-file-names-unique/Solution_regex.java), [Python](/solutions/making-file-names-unique/Solution.py) | Medium | [Array](https://leetcode.com/tag/array), [Hash Table](https://leetcode.com/tag/hash-table), [String](https://leetcode.com/tag/string) | +| 1608 | [Special Array With X Elements Greater Than or Equal X](https://leetcode.com/problems/special-array-with-x-elements-greater-than-or-equal-x) | [Java](/solutions/special-array-with-x-elements-greater-than-or-equal-x/Solution.java) | Easy | [Array](https://leetcode.com/tag/array), [Binary Search](https://leetcode.com/tag/binary-search), [Sorting](https://leetcode.com/tag/sorting) | +| 1636 | [Sort Array by Increasing Frequency](https://leetcode.com/problems/sort-array-by-increasing-frequency) | [Java](/solutions/sort-array-by-increasing-frequency/Solution.java) | Easy | [Array](https://leetcode.com/tag/array), [Hash Table](https://leetcode.com/tag/hash-table), [Sorting](https://leetcode.com/tag/sorting) | Generated on 2023-10-08