Leetcode:剑指offer46:数字翻译成字符串

import javax.swing.*;
import java.util.*;

//
class Solution {
    public int translateNum(int num){
        String s=String.valueOf(num);
        //dp数组表示到达第i位时,共有多少种表示方法
        int[] dp=new int[s.length()+1];
        dp[0]=1;
        dp[1]=1;
        for(int i=2;i<=s.length();i++){
            String str=s.substring(i-2,i);
            if(str.compareTo("10")>=0 && str.compareTo("25")<=0){
                //如果第i位数与第i-1位数可以重新表示的话,就有dp[i-2]种表示方法
                //+不把第i位和第i-1位连起来表示,就有dp[i-1]种表示方法
                dp[i]=dp[i-1]+dp[i-2];
            }else{
                //把第i位和第i-1位连起来表示,就有dp[i-1]种表示方法
                dp[i]=dp[i-1];
            }
        }
        return dp[s.length()];
    }
}

posted @   Dreamer_szy  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示