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


    题目描述

    给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。

    示例1:

    输入: 12258
    输出: 5
    解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi"
    

    提示:

    0 <= num < 231
    

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/ba-shu-zi-fan-yi-cheng-zi-fu-chuan-lcof

    代码实现

    class Solution {
    public:
        int translateNum(int num) {
            string number = to_string(num);
            vector<int> trans_num;
            trans_num.push_back(1);
            trans_num.push_back((stoi(number.substr(0, 2)) < 26) ? 2 : 1);
            for(int i = 2; i < number.length(); i++) {
                int lambda = 0;
                string cur_2d = number.substr(i - 1, 2);
                if(stoi(cur_2d) < 26 && stoi(cur_2d) > 9)
                    lambda = 1;
                trans_num.push_back(trans_num[i - 1] + lambda * trans_num[i - 2]);
            }
            return trans_num[number.length() - 1];
        }
    };
    
  • 相关阅读:
    反射:框架设计的灵魂
    Junit测试
    XML笔记
    map 的用法
    opencv总结1
    光源
    镜面反射
    openGL纹理对象
    GPU入门
    动态规划1
  • 原文地址:https://www.cnblogs.com/xqmeng/p/13628168.html
Copyright © 2020-2023  润新知