91. 解码方法

package leetcode;

public class demo_91 {
    public int numDecodings(String s) {
        int f[]=new int [s.length()+1];
        if(s.startsWith("0")) {return 0;}       
        //如果是是一个空字符串,也可以解码出一种可能
        f[0]=1;
        //f[n]=f[n-1]+f[n-2]
        for(int i=1;i<=s.length();i++) {
            //解码最后一位
            if(s.charAt(i-1)!='0') {
                f[i]=f[i-1];
            }
            //解码最后两位
            if(i>1&&s.charAt(i-2)!='0'&&Integer.valueOf(s.substring(i-2,i))<=26) {
                f[i]=f[i]+f[i-2];
            }
        }
        System.out.println(f[s.length()]);
        return f[s.length()];
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        demo_91 d91=new demo_91();
        String s="226";
        d91.numDecodings(s);
    }
}

 

posted on 2021-07-03 22:38  一仟零一夜丶  阅读(94)  评论(0)    收藏  举报