1. 程式人生 > 其它 >把數字翻譯字串

把數字翻譯字串

import java.util.*;


public class Solution {
/**
* 解碼

* @param nums string字串 數字串
* @return int整型
*/
public int solve (String nums) {
  if(nums==null ||nums.length()==0)

    return 0;
  int[] dp = new int[nums.length()+1];
  dp[0]=1;
  dp[1]=nums.charAt(0)=='0'?0:1;
  for(int i=2;i<dp.length;i++){
    //無法獨立編碼也無法組合編碼
    if(nums.charAt(i-1)=='0' && (nums.charAt(i-2)=='0' || nums.charAt(i-2)>'2')){
      return 0;
    //只能組合編碼
    }else if(nums.charAt(i-1)=='0'){
      dp[i] = dp[i-2];
    //只能獨立編碼
    }else if(nums.charAt(i-2)=='0' || nums.charAt(i-2)>'2' || nums.charAt(i-2)=='2'&& nums.charAt(i-1)>'6' ){
      dp[i] = dp[i-1];
    //兩種編碼方式都可以
    }else{
      dp[i] = dp[i-1]+dp[i-2];
    }
  }
  return dp[nums.length()];
}
}