剑指Offer——把数字翻译成字符串(JS实现)

简介: 剑指Offer——把数字翻译成字符串(JS实现)

题目描述

image.png

解题思路

  • 本题关键点在于:使用递归的思想。
  • 考虑两种情况:1. 单个的数字(可以翻译) 2.连续的两个数字组成的数字在0-25之间。(可以翻译)
  • 递归的结束条件是字符串的长度达到了输入数字的长度
  • 千言万语其实就是下面这个图的思想(来自于LeetCode题解: leetcode-cn.com/problems/ba…

image.png

有时候无法理解递归的过程的时候,可以通过手画下面的递归图来帮助我们理解递归

image.png

解题代码

var translateNum = function(num) {
    let result = 0;
    const strLen = num.toString().length;
    num = num.toString();
    function dfs(str,pointer) {
        if (str.length === strLen) {
            result++;
            return;
        }
        if (Number(num[pointer]) * 10 + Number(num[pointer + 1]) >= 10 && Number(num[pointer]) * 10 + Number(num[pointer + 1]) < 26) {
            dfs(str + num[pointer],pointer+1);
            dfs(str + num[pointer] + num[pointer+1],pointer+2);
        } else {
            dfs(str + num[pointer],pointer+1);
        }
    }
    dfs('',0)
    return result;
};

总结(本题给我们的启示思路)

  • 启示一:学会使用递归求解
  • 启示二:学会画递归图
  • 启示三:知道每一层递归返回到哪里了,心里要有数
相关文章
|
JavaScript 前端开发
JS几种拼接字符串的方法
JS几种拼接字符串的方法
282 1
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
313 63
|
12月前
|
JavaScript 前端开发 开发者
JavaScript字符串的常用方法
在JavaScript中,字符串处理是一个非常常见的任务。JavaScript提供了丰富的字符串操作方法,使开发者能够高效地处理和操作字符串。本文将详细介绍JavaScript字符串的常用方法,并提供示例代码以便更好地理解和应用这些方法。
266 13
|
JavaScript 前端开发 索引
JavaScript学习第二章--字符串
本文介绍了JavaScript中的字符串处理,包括普通字符串和模板字符串的使用方法及常见字符串操作方法如`charAt`、`concat`、`endsWith`等,适合前端学习者参考。作者是一位热爱前端技术的大一学生,专注于分享实用的编程技巧。
166 2
|
存储 JavaScript 前端开发
JavaScript 字符串(String) 对象
JavaScript 字符串(String) 对象
153 3
|
JavaScript 前端开发 C++
JavaScript用indexOf()在字符串数组中查找子串时需要注意的一个地方
JavaScript用indexOf()在字符串数组中查找子串时需要注意的一个地方
HTML+JavaScript构建一个将C/C++定义的ANSI字符串转换为MASM32定义的DWUniCode字符串的工具
HTML+JavaScript构建一个将C/C++定义的ANSI字符串转换为MASM32定义的DWUniCode字符串的工具
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
306 2
|
JavaScript 前端开发
JavaScript中的原型 保姆级文章一文搞懂
本文详细解析了JavaScript中的原型概念,从构造函数、原型对象、`__proto__`属性、`constructor`属性到原型链,层层递进地解释了JavaScript如何通过原型实现继承机制。适合初学者深入理解JS面向对象编程的核心原理。
243 1
JavaScript中的原型 保姆级文章一文搞懂
JS+CSS3文章内容背景黑白切换源码
JS+CSS3文章内容背景黑白切换源码是一款基于JS+CSS3制作的简单网页文章文字内容背景颜色黑白切换效果。
155 0

热门文章

最新文章