feat: populate note files with problem descriptions and code stubs
Add populate-notes.mjs that fetches problem descriptions and Python/C++ code stubs from LeetCode's GraphQL API. Populated all 197 NeetCode 150 note files with: - Problem description (examples, constraints) - Python code stub (function signature) - C++ code stub (function signature + includes) API responses cached in leetcode/.cache/leetcode/ for instant re-runs.
This commit is contained in:
@@ -1,18 +1,88 @@
|
||||
#+PROPERTY: STUDY_DECK_02
|
||||
* TODO 0091. Decode Ways :medium:
|
||||
:PROPERTIES:
|
||||
:NEETCODE: [[file:../../roadmap.org::*0091. Decode Ways][Roadmap]]
|
||||
:NEETCODE: [[file:../../roadmap.org::*0091. Decode Ways][0091. Decode Ways]]
|
||||
:END:
|
||||
|
||||
You have intercepted a secret message encoded as a string of numbers. The message is *decoded* via the following mapping:
|
||||
|
||||
~"1" -> 'A'
|
||||
|
||||
"2" -> 'B'
|
||||
|
||||
...
|
||||
|
||||
"25" -> 'Y'
|
||||
|
||||
"26" -> 'Z'~
|
||||
|
||||
However, while decoding the message, you realize that there are many different ways you can decode the message because some codes are contained in other codes (~"2"~ and ~"5"~ vs ~"25"~).
|
||||
|
||||
For example, ~"11106"~ can be decoded into:
|
||||
|
||||
- ~"AAJF"~ with the grouping ~(1, 1, 10, 6)~
|
||||
|
||||
- ~"KJF"~ with the grouping ~(11, 10, 6)~
|
||||
|
||||
- The grouping ~(1, 11, 06)~ is invalid because ~"06"~ is not a valid code (only ~"6"~ is valid).
|
||||
|
||||
Note: there may be strings that are impossible to decode.
|
||||
|
||||
Given a string s containing only digits, return the *number of ways* to *decode* it. If the entire string cannot be decoded in any valid way, return ~0~.
|
||||
|
||||
The test cases are generated so that the answer fits in a *32-bit* integer.
|
||||
|
||||
*Example 1:*
|
||||
|
||||
*Input:* s = "12"
|
||||
|
||||
*Output:* 2
|
||||
|
||||
*Explanation:*
|
||||
|
||||
"12" could be decoded as "AB" (1 2) or "L" (12).
|
||||
|
||||
*Example 2:*
|
||||
|
||||
*Input:* s = "226"
|
||||
|
||||
*Output:* 3
|
||||
|
||||
*Explanation:*
|
||||
|
||||
"226" could be decoded as "BZ" (2 26), "VF" (22 6), or "BBF" (2 2 6).
|
||||
|
||||
*Example 3:*
|
||||
|
||||
*Input:* s = "06"
|
||||
|
||||
*Output:* 0
|
||||
|
||||
*Explanation:*
|
||||
|
||||
"06" cannot be mapped to "F" because of the leading zero ("6" is different from "06"). In this case, the string is not a valid encoding, so return 0.
|
||||
|
||||
*Constraints:*
|
||||
|
||||
- ~1 <= s.length <= 100~
|
||||
|
||||
- ~s~ contains only digits and may contain leading zero(s).
|
||||
|
||||
** TODO Approach
|
||||
Write your approach here.
|
||||
|
||||
** TODO Python
|
||||
#+begin_src python
|
||||
|
||||
class Solution:
|
||||
def numDecodings(self, s: str) -> int:
|
||||
#+end_src
|
||||
|
||||
** TODO C++
|
||||
#+begin_src cpp
|
||||
|
||||
class Solution {
|
||||
public:
|
||||
int numDecodings(string s) {
|
||||
|
||||
}
|
||||
};
|
||||
#+end_src
|
||||
|
||||
Reference in New Issue
Block a user