其他分享
首页 > 其他分享> > Leetcode:剑指offer46:数字翻译成字符串

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()];
    }
}

标签:num,String,offer46,int,valueOf,翻译成,import,Leetcode,dp
来源: https://www.cnblogs.com/lisamihama/p/16098381.html