美文网首页dp
【剑指 offer】把数字翻译成字符串

【剑指 offer】把数字翻译成字符串

作者: 邓泽军_3679 | 来源:发表于2019-05-03 23:21 被阅读0次

1、题目描述

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

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

一个数字可能有多个翻译。例如12258有5种不同的翻译,它们分别是”bccfi”、”bwfi”、”bczi”、”mcfi”和”mzi”。

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

样例

输入:"12258"
输出:5

2、问题描述:

3、问题关键:

  • 如果连续两个数组成的数是大于26的,那么f[i] = f[i - 1];
  • 否则,f[i] = f[i -1] + f[i - 2];

4、C++代码:

class Solution {
public:
    int getTranslationCount(string s) {
        int n = s.size();
        int f[n];
        f[0] = 1;
        for (int i = 1; i <= n; i ++) {
            f[i] = f[i - 1];
            if (i > 1) {
                int a = (s[i - 2] - '0') * 10 + s[i - 1] - '0';
                if (a >= 10 && a < 26) 
                    f[i] += f[i - 2];
            }
        }
        return f[n];
    }
};

相关文章

网友评论

    本文标题:【剑指 offer】把数字翻译成字符串

    本文链接:https://www.haomeiwen.com/subject/bortoqtx.html