2021-02-17:规定1和A对应、2和B对应、3和C对应...26和Z对应,那么一个数字字符串比如"111”就可以转化为:"AAA"、"KA"和"AK"。给定一个只有数字字符组成的字符串str,请问有多少种转化结果?

福哥答案2021-02-17:

自然智慧即可。
1.递归。有代码。
2.动态规划。有代码。

代码用golang编写,代码如下:

package mainimport "fmt"func main() {    str := "7210231231232031203123"    fmt.Println("1.递归:", number1(str))    fmt.Println("2.动态规划:", number2(str))}func number1(str string) int {    if len(str) == 0 {        return 0    }    return process1(str, 0)}func process1(str string, index int) int {    strLen := len(str)    if strLen == index { //1        return 1    }    if str[index] == '0' {        return 0    }    ret := process1(str, index+1)    if index+1 < strLen && (str[index] == '1' || (str[index] == '2' && str[index+1] <= '6')) {        ret += process1(str, index+2)    }    return ret}func number2(str string) int {    strLen := len(str)    if strLen == 0 {        return 0    }    dp := make([]int, strLen+1)    dp[strLen] = 1 //1    for i := strLen - 1; i >= 0; i-- {        if str[i] == '0' {            continue        }        dp[i] = dp[i+1]        if i+1 < strLen && (str[i] == '1' || (str[i] == '2' && str[i+1] <= '6')) {            dp[i] += dp[i+2]        }    }    return dp[0]}

执行结果如下:


左神java代码
评论

©著作权归作者所有:来自51CTO博客作者福大大的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 航电oj2004-2005代码
  2. Java反射机制:跟着代码学反射
  3. 2021-02-16:n皇后问题。给定一个整数n,返回n皇后的摆法有多少种?
  4. 我的第九个代码
  5. Django入门到进阶-适合Python小白的系统课程
  6. 玩转算法面试-- Leetcode真题分门别类讲解
  7. Tornado从入门到进阶 打造支持高并发的技术论坛
  8. 协程原理从入门到精通 每个后端开发都需要掌握的高性能开发技术
  9. 算法与数据结构-综合提升 C++版

随机推荐

  1. 如何使用java Web服务从mysql数据库获取
  2. 使用C#在MySQL中备份数据库
  3. Navicat工具备份还原mysql数据库详细图解
  4. navicat for mysql 连接报错1251详细解决
  5. Mysql基础之字符集与乱码
  6. Sqoop_详细总结 使用Sqoop将HDFS/Hive/HB
  7. 不知道有人在mysql5.0上 针对10亿条数据
  8. mysql中的隐式提交
  9. MYSQL在触发器中怎样实现‘根据条件来确
  10. MySQL“在建立到SQL Server的连接时发生