zoukankan      html  css  js  c++  java
  • 剑指 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位置,也就是前一个

  • 相关阅读:
    容斥原理
    泰勒展开
    初等微积分
    粒子群优化(微粒群算法)
    生成函数
    FFT例题
    图论例题
    线段求交
    期望小小结
    [Violet]天使玩偶/SJY摆棋子
  • 原文地址:https://www.cnblogs.com/jieyi/p/14321056.html
Copyright © 2011-2022 走看看