把数字翻译成字符串
题目描述
有一种将字母编码成数字的方式:‘a’->1, ‘b->2’, … , ‘z->26’。
现在给一串数字,返回有多少种可能的译码结果
代码
import java.util.*;
public class Solution {
/**
* 解码
* @param nums string字符串 数字串
* @return int整型
*/
public int solve (String nums) {
if(nums==null||nums.equals("0")) return 0;
int[] dp =new int[nums.length()];
dp[0] = 1;
int pre, cur;
for(int i=1; i<nums.length(); i++){
pre = nums.charAt(i-1) - '0';
cur = nums.charAt(i) - '0';
dp[i] = dp[i-1];
if(cur==0 && pre==0){
return 0;
}else if(pre==1 ||pre==2 && cur<=6){
dp[i] += i>1? dp[i-2] : 1;
}
}
return dp[nums.length()-1];
}
}