• 把数字翻译成字符串


    把数字翻译成字符串

    题目描述:给定一个数字,我们按照如下规则把它翻译为字符串:

    0 翻译成 a,1 翻译成 b,……,11 翻译成 l,……,25 翻译成 z

    一个数字可能有多个翻译。

    例如 12258 有 5 种不同的翻译,它们分别是 bccfibwfibczimcfimzi

    请编程实现一个函数用来计算一个数字有多少种不同的翻译方法。

    样例

    输入:"12258"

    输出:5

    分析:根据我们将要处理的那个字符(第i个字符,记为x)的处理方式分情况讨论,类似对最后一步操作做分情况讨论

    1、如果我们将x单独翻译 那么dp[i]=dp[i-1]

    2、如果我们将x和前一字符合并翻译处理 那么dp[i] = dp[i-2]

    因为题意要求的是翻译方案总数:所以

    dp[i] = dp[i-1] + dp[i-2]

    附:该题类似于爬楼梯问题、斐波那契......


    代码如下:

    class Solution {
    public:
       int getTranslationCount(string s) {
           int dp[s.size()];
           if(s.size() == 0 || s.size() == 1) return s.size();
           s = " " + s;
           dp[0] = 1;
           for(int i=1;i<s.size();i++){
               dp[i] = dp[i-1];
               if(i > 1){
                   int t = ( s[i] - '0' )  + ( s[i-1] - '0' ) * 10;
                   if(t >= 10 && t <= 25) dp[i] += dp[i-2];
              }
          }
           return dp[s.size()-1];
      }
    };

     

  • 相关阅读:
    UISegmentControl
    UISwitch 开关控件
    UI弹出键盘和收回键盘
    UITextField的属性设置
    UIButton的属性设置
    UILabel 的属性设置
    创建UIView对象
    id和instancetype的异同
    SPOJ FIBPOL
    HDU 6168 Numbers
  • 原文地址:https://www.cnblogs.com/yuanshixiao/p/15616597.html
Copyright © 2020-2023  润新知