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

};
全部评论

相关推荐

king122:专业技能不要写这么多,熟悉和熟练你经不住问,排版有些难看,中间的空隙搞小一点,项目描述的话感觉是从课程中抄下来的,改一改吧,不然烂大街了,每个项目都写一两点,用什么技术实现了什么难点,然后再写一些数字上去像时间又花了90%这样,这样面试会多一些,如果觉得自己的项目还是不够用的话,我有几个大厂最近做过的实习项目,感兴趣的话可以看我简介中的项目地址
点赞 评论 收藏
分享
牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务