当前位置: 首页 > news >正文

湖北省建设安全管理站网站广州网站建设正规公司

湖北省建设安全管理站网站,广州网站建设正规公司,工程公司起名字大全免费,嵌入式软件开发程序员寻找回文子串的完整思路过程前言一、回文串的数量二、动态规划1、完整思考过程2、go总结参考文献前言 回文字符串,就是从左遍历和从右遍历的字符是相同顺序的,转换一下,就是该字符串是对称的。寻找回文子串面临两个直接的问题,1-…

寻找回文子串的完整思路过程

  • 前言
  • 一、回文串的数量
  • 二、动态规划
    • 1、完整思考过程
    • 2、go
  • 总结
  • 参考文献

前言

回文字符串,就是从左遍历和从右遍历的字符是相同顺序的,转换一下,就是该字符串是对称的。寻找回文子串面临两个直接的问题,1-如何确定一个子串?2-如何判断该子串是否为回文串?

一、回文串的数量

在这里插入图片描述

二、动态规划

1、完整思考过程

两个直观的问题,
1)如何确定子串?两层for循环O(n2)定位左右边界。
2)如何判定子串是回文子串?for循环O(n)判定是否对称。
复杂度:O(n3)

子串/子数组问题,联想前缀/滑动窗口/单调栈/动态规划,
回文内在特点)一个回文串本身有什么特点?去头去尾也是回文,利用这个规律,记录内串是否为回文,从内到外递进判断,可以减少for循环的对称判断,则可将时间复杂度降为O(n2)

方案)由内到外,从少到多,先判断s[:0]子串,再判断s[:1]子串,依次类推。

2、go

func countSubstrings(s string) int {f := make([]bool,len(s))cnt := 0for i := 0;i < len(s);i++ {f[i] = truecnt++ // 每个字符串都是一个回文,这里cnt++配合f[i] = ture,相互理解,而不是cnt := len(s)// 需要用到f[j+1],所以正序遍历,防止覆盖。for j := 0;j < i;j++ {f[j] = false // 复用一层数组,需要覆盖前面的值,保持严格递推。if s[i] == s[j] && (j + 1 == i || f[j + 1]) {f[j] = truecnt++}}}return cnt
}

总结

1)写下完整的思路过程,有助于清晰的理解问题,记忆问题的解答思路。
2)动态规划本质,将问题分解成规模不同性质相同的子问题,找到子问题之间的内在联系,此时便可记录这种联系点,以空间换时间。
3)动态规划常常涉及空间压缩,而压缩面临直观的两个问题,1-这个记录的状态是否过时?2-这个记录的状态是否太新?(才覆盖了)

参考文献

[1] LeetCode 回文串的数量

http://www.mnyf.cn/news/49591.html

相关文章:

  • 政府单位官方网站建设无锡seo关键词排名
  • 网站设置301重定向企业网站推广效果指标分析
  • 创意工作室网站谷歌推广一年多少钱
  • redis做缓存的网站并发数站长数据
  • 上海装修公司做网站百度收录平台
  • 池州专业网站建设学电脑在哪里报名
  • 长沙做公司网站大概多少钱seo专员岗位职责
  • 拿自己爱人做网站网络维护
  • 上海哪学网站建设优化长治seo顾问
  • 性用品微商做的最好的网站百度推广开户渠道
  • 网站建设信息收集在线识图
  • 怎么做微商网站百度指数批量查询工具
  • 怎么自己创建一个网站一个新手如何推销产品
  • 怎样在网站是做宣传网店运营流程步骤
  • 网站备案代理公司域名访问网站入口
  • 怎么做网站卖东西良品铺子网络营销策划书
  • 重庆网站建设公司 十年网络seo优化推广
  • 广州网站建设培训班东莞网站建设市场
  • 一般网站的流量是多少人民日报今日新闻
  • 临汾网站建设 吕梁网站建设运营培训班学费大概多少
  • 源码资源下载站西安网络推广公司大全
  • 网站建设 手机app广州seo推广优化
  • 网站如何做cdn设计网站免费素材
  • 日本亲子游哪个网站做的好西安seo网站关键词
  • 哪个网站可以做封面百度知道免费提问
  • 企业做网站分哪几种seo的中文含义
  • 安阳 网站建设东莞网络推广培训
  • 山东省住房城乡建设厅怎样优化网站排名靠前
  • 设备免费做网站推广sem优化师
  • html5建设的网站网站seo优化是什么意思