• 把数字翻译成字符串


    把数字翻译成字符串

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

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

     

  • 相关阅读:
    python_异常处理
    python_类与对象
    函数
    字符串(查找,替换,分割)
    容器类型的数据
    条件语句
    关于WinSock编程的多线程控制
    利用Delphi编写Socket通信程序
    SQL Server数据库开发的二十一条军规
    SQL Server中的日期格式化
  • 原文地址:https://www.cnblogs.com/yuanshixiao/p/15616597.html
Copyright © 2020-2023  润新知