91. Decode Ways

public class Solution {
    public int numDecodings(String s) {
        if(s.length()==0) return 0;
        int[] dp=new int[s.length()+1];
        dp[s.length()]=1;
        dp[s.length()-1]= s.charAt(s.length()-1)!='0'? 1:0;
        for(int i=s.length()-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];
    }
}
public class Solution {
    public int numDecodings(String s) {
        int n1 =1, n2=1, n3=0;
        if(s.length()==0||s.charAt(0)=='0') return 0;
        for(int i=2; i<=s.length(); i++)
        {
            n3=0;
            if(s.charAt(i-1)!='0') n3=n2;
            int num = Integer.parseInt(s.substring(i-2,i));
            if(num>=10 && num<=26) n3+=n1;
            n1=n2;
            n2=n3;
        }
        return n2;
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容