面试46.把数字翻译成字符串

Posted yh-simon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试46.把数字翻译成字符串相关的知识,希望对你有一定的参考价值。

技术图片
技术图片

动态规划

思路

原文

技术图片
技术图片

代码

public int translateNum(int num) {
       String s=String.valueOf(num);
       int a=1,b=1;
       for(int i=2;i<=s.length();i++){
           String tmp=s.substring(i-2,i);
           int c=tmp.compareTo("10")>=0&&tmp.compareTo("25")<=0?a+b:a;
           b=a;
           a=c;
       }
       return a;
    }

优化

public int translateNum2(int num){
    int a=1,b=1,x,y=num%10;
    //从右往左
    while(num!=0){
        num/=10;
        x=num%10;
        int tmp=x*10+y;
        int c=(tmp>=10&&tmp<=25)?a+b:a;
        b=a;
        a=c;
        y=x;
    }
    return a;
}

参考链接

Krahets:动态规划,清晰图解



以上是关于面试46.把数字翻译成字符串的主要内容,如果未能解决你的问题,请参考以下文章

[面试题46] 把数字翻译成字符串

面试题46. 把数字翻译成字符串. 递归

LeetCode每日一题2020.6.9 面试题46. 把数字翻译成字符串

剑指OFFER----面试题46. 把数字翻译成字符串

剑指Offer面试题46. 把数字翻译成字符串

Offer[46] 把数字翻译成字符串