博客
关于我
牛客网WY-29 暗黑子字符串
阅读量:302 次
发布时间:2019-03-01

本文共 379 字,大约阅读时间需要 1 分钟。

为了计算长度为n的字符串中不存在任何长度为3的连续子串包含A、B、C各一个的字符串数目,我们可以使用动态规划的方法。以下是详细的解题思路:

  • 定义状态:

    • dp[i] 表示长度为i的字符串中是暗黑字符串的数量。
  • 递推关系:

    • 当i >= 3时,dp[i] = 2 * dp[i-1] + dp[i-2]。这是因为每个长度为i的字符串可以由长度为i-1的字符串的两倍加上长度为i-2的字符串构成。
  • 初始化:

    • dp[1] = 3:长度为1的字符串有3种可能(A, B, C),都是暗黑的。
    • dp[2] = 9:长度为2的字符串有9种可能,同样都是暗黑的。
  • 计算:

    • 计算从dp[3]到dp[n]的值,使用上述递推公式。
  • 输出:

    • 输入n后,输出对应的dp[n]值。
  • 通过这种方法,我们可以高效地计算出任意长度n的暗黑字符串数目,时间复杂度为O(n),空间复杂度为O(n)。

    转载地址:http://gtoa.baihongyu.com/

    你可能感兴趣的文章
    Python 使用flush函数将缓冲区数据立即写磁盘
    查看>>
    python 使用in判断不准确,in不好使
    查看>>
    Python 使用pandas 进行查询和统计详解
    查看>>
    Redis 配置文件redis.conf详细解释
    查看>>
    python网络爬虫(2)——scrapy框架的基础使用
    查看>>
    python网络爬虫实例教程试读_Python网络爬虫实战教程(全套完整版) - 学途无忧网 - 做技术的王者 - Powered By EduSoho...
    查看>>
    Python 使用哈希函数用于加密
    查看>>
    Python 依赖管理的革新——Poetry 深度解析
    查看>>
    python 保留精度及增加去除数字的千位分隔符(金额化数字)
    查看>>
    python 倒计时 9,8,7,。。。。。。0
    查看>>
    Python 入门开发学习笔记之数据的增删改查
    查看>>
    Python 入门教程(2)搭建环境 2.4、VSCode配置Node.js运行环境
    查看>>
    Python 八大排序算法合集
    查看>>
    python 关于epoll的学习
    查看>>
    Python 内存管理
    查看>>
    Python 内嵌函数:它们有什么用处?
    查看>>
    Python 内置 sum 函数 vs. for 循环性能
    查看>>
    Python 内置时间模块
    查看>>
    python 内部如何实现命名元组?
    查看>>
    python 写入json数据到数据库
    查看>>