[LeetCode]Decode Ways

来源:互联网 发布:英雄联盟网吧特权软件 编辑:程序博客网 时间:2024/06/05 16:02

https://leetcode.com/problems/decode-ways/

明显dp问题,开数组长度n+1,dp[n]=1,dp[n - 1]看是不是0来判断。剩下的部分就是巧用parseInt、substring,可有效减少代码量。难度不大。




public class Solution {    public int numDecodings(String s) {        if (s == null || s.length() == 0) return 0;        int len = s.length();        char[] arr = s.toCharArray();        int[] dp = new int[len + 1];        dp[len] = 1;        dp[len - 1] = arr[len - 1] == '0' ? 0 : 1;        for (int i = len - 2; i >= 0; i--) {            if (arr[i] == '0') continue;            if (Integer.parseInt(s.substring(i, i + 2)) > 26) dp[i] = dp[i + 1];            else dp[i] = dp[i + 1] + dp[i + 2];        }        return dp[0];    }}


0 0
原创粉丝点击