• 剑指 Offer 46. 把数字翻译成字符串


    给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。
    
    class Solution {
        public int translateNum(int num) {
            if(num==0) return 1;
            String s=String.valueOf(num);
            int a=1,b=1;
            int c=0;
            for(int i=2;i<=s.length();i++){
                String temp=s.substring(i-2,i);
                if(temp.compareTo("25")<=0&&temp.compareTo("10")>=0){
                    c=a+b;
                }else{
                    c=a;
                }
                b=a;
                a=c;
            }
            return a;
    
            
            
        }
    
    }

    方程是这样:

     代码思路:先转化成字符串,然后空位置和1位置都是1,每次取相邻两位,组成数在10-25,那么他就是单个和两个都行,也就是dp[i-1]+dp[i-2],否则只能单个,也就是和前一个一样,

    每次两个之后, a设置成本次位置,b设置成原来a位置,也就是前一个

  • 相关阅读:
    工厂方法模式
    命名空间的规划
    Download Manager
    Intent(二)
    Intent (一)
    Fragment (一)
    修改环境变量需不需要重启电脑
    Spring mvc和SSH如何取舍?
    ORA-01795: 列表中的最大表达式数为1000的解决方法详解
    apache与tomcate的区别
  • 原文地址:https://www.cnblogs.com/jieyi/p/14321056.html
Copyright © 2020-2023  润新知