Skip to content

Commit 3de30de

Browse files
Sean PrashadSean Prashad
authored andcommitted
Update 91_Decode_Ways.java
1 parent 74e96d6 commit 3de30de

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

Dynamic Programming/91_Decode_Ways.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
11
class Solution {
22
public int numDecodings(String s) {
3+
if (s == null || s.length() == 0) {
4+
return 0;
5+
}
6+
37
int[] dp = new int[s.length() + 1];
4-
dp[0] = 1;
5-
dp[1] = s.charAt(0) != '0' ? 1 : 0;
68

7-
for (int i = 2; i <= s.length(); i++) {
8-
int oneDigit = Integer.valueOf(s.substring(i - 1, i));
9-
int twoDigits = Integer.valueOf(s.substring(i - 2, i));
9+
if (s.charAt(0) != '0') {
10+
dp[0] = 1;
11+
}
12+
if (dp[0] == 1) {
13+
dp[1] = 1;
14+
}
1015

11-
if (1 <= oneDigit && oneDigit <= 9) {
16+
for (int i = 2; i <= s.length(); i++) {
17+
if (s.charAt(i - 1) != '0') {
1218
dp[i] += dp[i - 1];
1319
}
1420

15-
if (10 <= twoDigits && twoDigits <= 26) {
21+
int twoDigits = Integer.valueOf(s.substring(i - 2, i));
22+
23+
if (twoDigits >= 10 && twoDigits <= 26) {
1624
dp[i] += dp[i - 2];
1725
}
1826
}

0 commit comments

Comments
 (0)