https://github.com/emahtab/decode-ways
Number of ways to decode
https://github.com/emahtab/decode-ways
dynamic-programming leetcode problem-solving
Last synced: 3 months ago
JSON representation
Number of ways to decode
- Host: GitHub
- URL: https://github.com/emahtab/decode-ways
- Owner: eMahtab
- Created: 2020-04-16T14:28:13.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2020-04-16T14:37:51.000Z (about 5 years ago)
- Last Synced: 2025-02-02T03:26:11.350Z (5 months ago)
- Topics: dynamic-programming, leetcode, problem-solving
- Homepage:
- Size: 125 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Decode Ways
## https://leetcode.com/problems/decode-waysA message containing letters from A-Z is being encoded to numbers using the following mapping:
'A' -> 1
'B' -> 2
...
'Z' -> 26Given a non-empty string containing only digits, determine the total number of ways to decode it.
```
Example 1:Input: "12"
Output: 2
Explanation: It could be decoded as "AB" (1 2) or "L" (12).Example 2:
Input: "226"
Output: 3
Explanation: It could be decoded as "BZ" (2 26), "VF" (22 6), or "BBF" (2 2 6).
```## Approach :

## Implementation : Time => O(number of characters) , Space => O(number of characters)
```java
class Solution {public int numDecodings(String s) {
if(s == null || s.length() == 0) {
return 0;
}// DP array to store the subproblem results
int[] dp = new int[s.length() + 1];
dp[0] = 1;
// Ways to decode a string of size 1 is 1. Unless the string is '0'.
// '0' doesn't have a single digit decode.
dp[1] = s.charAt(0) == '0' ? 0 : 1;for(int i = 2; i < dp.length; i += 1) {
// Check if successful single digit decode is possible.
if(s.charAt(i-1) != '0') {
dp[i] = dp[i-1];
}// Check if successful two digit decode is possible.
int twoDigit = Integer.parseInt(s.substring(i-2, i));
if(twoDigit >= 10 && twoDigit <= 26) {
dp[i] += dp[i-2];
}
}
return dp[s.length()];}
}
```# References :
1. https://leetcode.com/articles/decode-ways