91. 解码方法——LeetCode

心得:做动态规划的时候一定要知道,确定哪个值是确定的,

比如到底给1,2附初值,还是给0,1附初值。

代码:

class Solution {
    public int numDecodings(String s) {
          if(s==null||s.length()==0)
              return 0;
          char[] arr=s.toCharArray();
          int[] nums=new int[s.length()+1];
          nums[0]=1;
        if(arr[0]=='0')
            return 0;
         for(int i=1;i<=s.length();i++)
         {
             if(arr[i-1]!='0')
                 nums[i]=nums[i]+nums[i-1];
             if(i-2>=0&&(arr[i-2]-48)>0&&(arr[i-2]-48)*10+arr[i-1]-48>0&&(arr[i-2]-48)*10+arr[i-1]-48<=26)
                 nums[i]=nums[i]+nums[i-2];
         }
         return nums[s.length()];        
      }
}

猜你喜欢

转载自www.cnblogs.com/pc-m/p/11107608.html