Leetcode-把数字翻译成字符串(中等)

题目描述

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

递归
一种直接是数字判断,或者换成字符串判断
易错点:还有一位时返回的是1,不是2,否则就重复了,如25

class Solution {
public:
    int translateNum(int num) {
        return Count(to_string(num));
    }
    int Count(string s) {
        int len=s.size();
        if(len==0||len==1) return 1;//len=0时返回1,因为len=2时,有两种可能 len(2)=len(1)+len(0)
        if("10"<=s.substr(len-2,2)&&s.substr(len-2,2)<="25")
        //这个范围的字符可以分成两个数字,可以合成一个数字
            return Count(s.substr(0,len-2))+Count(s.substr(0,len-1));
        else
            return Count(s.substr(0,len-1));
    }
};

数字:

class Solution {
public:
    int translateNum(int num) {
        return funcition(num);
    }
    int funcition(int num){
        if(num<10) return 1;
        if(num%100<=25&&num%100>=10)    
            return funcition(num/10)+funcition(num/100);
        else
            return funcition(num/10);
    }

};
全部评论

相关推荐

10-25 12:05
已编辑
湖南科技大学 Java
若梦难了:我有你这简历,已经大厂乱杀了
点赞 评论 收藏
分享
寿命齿轮:实习就一段还拉了,项目一看就不是手搓,学历也拉了,技术栈看着倒是挺好,就是不知道面试表现能咋样。 不过现在才大三,争取搞两端大厂实习,或者一个纯个人项目+一段大厂,感觉秋招还是未来可期。
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务