/
githubmirror
/
interviews
Обзор
Документация
Войти
/
githubmirror
/
interviews
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
leetcode/string/DecodeWays.java
37 строк
949 B
Kevin Naughton Jr
finish renaming files and directories
27 мар 2018, 19:52
27 мар 2018, 19:52
ec6dfb5
Код
Авторство
О чём код?
// A message containing letters from A-Z is being encoded to numbers using the following mapping: // 'A' -> 1 // 'B' -> 2 // ... // 'Z' -> 26 // Given an encoded message containing digits, determine the total number of ways to decode it. // For example, // Given encoded message "12", it could be decoded as "AB" (1 2) or "L" (12). // The number of ways decoding "12" is 2. public class DecodeWays { public int numDecodings(String s) { int n = s.length(); if(n == 0) { return 0; } int[] dp = new int[n + 1]; dp[n] = 1; dp[n - 1] = s.charAt(n - 1) != '0' ? 1 : 0; for(int i = n - 2; i >= 0; i--) { if(s.charAt(i) == '0') { continue; } else { dp[i] = (Integer.parseInt(s.substring(i, i + 2)) <= 26) ? dp[i + 1] + dp[i + 2] : dp[i + 1]; } } return dp[0]; } }