【剑指Offer】把数字翻译成字符串
发布日期:2022-02-10 08:55:16
浏览次数:26
分类:技术文章
本文共 883 字,大约阅读时间需要 2 分钟。
题目
给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。
思路
这道题抽象为树模型后就是:求一颗二叉树从根结点到达叶子结点的路径总数。
因为每次可能的选择都只有两个,犹如二叉树的两个分支。栗如:
对于数字 13 ,你第一次可以只选择一位,那就是 1 ,翻译成字符就是 b;你也可以两位都选,那就是 13 , 翻译成字符为 n。
所以最多就只有两个选择:走左子树或走右子树,走到叶子结点就返回 1 ,代表这条路径可以到达终点。
转载自:https://leetcode-cn.com/problems/ba-shu-zi-fan-yi-cheng-zi-fu-chuan-lcof/solution/ba-shu-zi-fan-yi-cheng-zi-fu-chuan-hui-su-dong-tai/
代码
class Solution {public: int backtrace(string &str,int pos){ int len = str.size(); if(len == pos){ return 1; } if(str[pos] == '0' || pos == len - 1 || str.substr(pos,2) > "25" ){ return backtrace(str,pos+1); } return backtrace(str,pos+1) + backtrace(str,pos+2); } int translateNum(int num) { string str = to_string(num); return backtrace(str, 0); }};
转载地址:https://blog.csdn.net/hanmin822/article/details/105854268 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年03月29日 14时22分35秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
人人都懂的编程课(Python)
2019-04-28
reactos操作系统实现(100)
2019-04-28
reactos操作系统实现(101)
2019-04-28
Android培训班(75)Dalvik虚拟机的GetStaticMethodID函数
2019-04-28
新手也可以学会TensorFlow
2019-04-28
游戏制作之路(32)创建自定义的界面样式管理
2019-04-28
从小说里学会长大
2019-04-28
iBATIS&Spring合奏(一)--DAO
2019-04-28
iBATIS&Spring合奏(二)--Flex前端融合
2019-04-28
iBATIS&Spring合奏(三)--事务&动态SQL
2019-04-28
iBATIS&Spring合奏(四)--设计模式in iBATIS
2019-04-28
iBATIS&Spring合奏(五)--整合lucene搜索表字段内容
2019-04-28
寒假的唠叨
2019-04-28
Flex&iBatis&Hibernate&Spring—师徒奶茶系统V1总结
2019-04-28
Java 并发包之线程池和原子计数
2019-04-28
JVM StackMapTable 属性的作用及理解
2019-04-28
ASM(三) 利用Method组件动态生成方法的字节码
2019-04-28
ASM(四) 利用Method 组件动态注入方法逻辑
2019-04-28
深度学习与神经网络关系
2019-04-28
反向传播back propagation:神经网络递推与一般表示的向量形式
2019-04-28