题解 | #把数字翻译成字符串#

最长公共前缀

http://www.nowcoder.com/practice/28eb3175488f4434a4a6207f6f484f47

import java.util.*;


public class Solution {
    /**
     * 解码
     * @param nums string字符串 数字串
     * @return int整型
     */
    public int solve (String nums) {
        int[] dp = new int[nums.length()+1];
        if(nums.charAt(0) == '0') return 0;
        dp[0] = 1;
        dp[1] = 1;
        for(int i = 2; i <= nums.length(); i++){
            if(nums.charAt(i-1) == '0'){
                int temp = Integer.parseInt(nums.substring(i-2,i));
                if(temp > 0 && temp <= 26){
                    dp[i] = dp[i-2];
                }else{
                    return 0;
                }
            }else{
                dp[i] = dp[i-1];
                int temp = Integer.parseInt(nums.substring(i-2,i));
                if(temp <= 26 && temp >10){
                    dp[i] += dp[i-2];
                }
            }
        }
        return dp[nums.length()];
    }
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务