91. Decode Ways
A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 Given 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). public class Solution{ public int numDecodings(String s){ if(s == null || s.length() == 0){ return 0; } int n = s.length(); int[] dp = new int[n+1]; dp[0] = 1; if(s.charAt(0) != '0'){ dp[1] = 1; }else{ dp[1] = 0; } for(int i = 2; i <= n; i++){ int first = Integer.valueOf(s.substring(i-1, i)); int second = Integer.valueOf(s.substring(i-2, i)); if(first >= 1 && first <= 9){ dp[i] += dp[i-1]; } if(second >= 10 && second <= 26){ dp[i] += dp[i-2]; } } return dp[n]; } } 打出所有可能性 wyt211 发表于 2018-10-11 10:31 想问下decode ways打印所有结果那道题,lz是用tree做的嘛? 想问问思路 backtracking做的 对了, 打印所有结果面试官还有让优化, 用的滚动数组 chaseqi 发表于 2018-10-15 10:38. more info on 1point3acres 请问下楼主 用backtracking的时候怎么用 滚动数组优化呀?滚动数组不是一般是DP的时候用的? 我就是一位一位看, 没看一位把结果存到list里, 下一位之依赖之前一位那个list, 优化就是弄两个list就行了. 好像不应该叫滚动数组, 叫滚动list? 你懂的
posted on 2018-11-06 07:39 猪猪🐷 阅读(144) 评论(0) 收藏 举报
浙公网安备 33010602011771号