代码随想录day46 || 647 回文子串, 516 最长回文子序列

news/2024/10/4 21:15:52

647 回文字串

image

func countSubstrings(s string) int {// 动规五部曲// dp[i][j] 表示s[i: j+1] 区间是否是一个回文// if s[i] == s[j] {if i-j <= 1 || dp[i+1][j-1] == true { dp[i][j] == true}}// 初始化为false// 从下往上,从左往右// printvar count intvar dp = make([][]bool, len(s))for i, _ := range dp {dp[i] = make([]bool, len(s))}for i:=len(s)-1; i>=0; i-- {for j:=i; j<len(s); j++ {if s[i] == s[j]{if j-i<=1 || dp[i+1][j-1] == true {dp[i][j] = truecount++}}}}//fmt.Println(dp)return count
}

516 最长回文子序列

func longestPalindromeSubseq(s string) int {// 647 回文字串变体,只用统计最长字串即可// dp[i][j] 表示s[i: j+1] 最长回文子串长度// s[i] != s[j] {dp[i][j] = max(dp[i+1][j-1], dp[i+1][j], dp[i][j-1])} // 删除i, 删除j, 两个都删除// s[i] == s[j] {dp[i+1][j-1] + 2} // 去除首位之后的最长字串 + 两个字符长度// 初始化为0 , 多初始化一行一列// 递推来自三个方向,左下,左,下,所以遍历顺序从下往上,从左往右// printvar maxlen intvar dp = make([][]int, len(s) + 1)for i, _ := range dp {dp[i] = make([]int, len(s) + 1)}for i:=len(s); i>=0; i-- {for j:=i; j<len(s); j++ {if s[i] == s[j]{if i == j {dp[i][j+1] = dp[i+1][j] + 1}else {dp[i][j+1] = dp[i+1][j] + 2}} else {dp[i][j+1] = max(dp[i+1][j], max(dp[i+1][j+1], dp[i][j]))}if dp[i][j+1] > maxlen {maxlen = dp[i][j+1]}}}//fmt.Println(dp)return maxlen
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/54942.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

vivo手机导出微信聊天记录方法

1,先在手机上打开“开发人员选项”并将USB调试功能打开。再将手机通过数据线连接到电脑,打开电脑上已经安装好的“互传备份助手”(点击此处进入下载页面),再点击界面上的新建备份。注意:在电脑上运行互传备份助手时,会提醒手机上也要安装互传助手,按提示安装即可。 2,…

PHP之常见问题

汇总在PHP开发中遇到的一些问题 1.post提交参数缺失 场景: 在前端页面发起一个post提交的时候,查看payload中的数据是正常的, 但是在接收的时候,发现只有部分数据,算了一下,包含的数据数量只有1000个 解决: 默认配置里的数据量配置太小造成的这个问题,需要修改一下配置;只需要修…

一个操作系统的设计与实现——第19章 IA32-e模式

19.1 64位段描述符与GDT 在32位操作系统中,我们使用的是平坦模型而非分段模型,从而,段描述符的段基址和段限长均成了摆设。在64位模式下,就连CPU也淘汰了分段模型,转而固定使用平坦模型。 64位代码段描述符如下图所示:如图所示,由于固定使用平坦模型,段描述符中的段基址…

GitHub 上这款新浪微博爬虫项目,‌让你轻松掌握微博数据!‌

该文章为 weibo-crawler 的官方文档,为了方便国内的同学阅读而转载。该文章为 weibo-crawler 的官方文档,为了方便国内的同学阅读而转载。 原文地址:https://github.com/dataabc/weibo-crawler 源码我也下载了一份,读者可以在我的公众号上回复“分享资料”来获取,路径如下…

获取行政区划信息(省、市)工具类

获取行政区划信息(省、市)工具类 说明:下载后解压,将工具类粘到你的项目,放到接口的data中即可。(接口请求url名称根据你的业务自己定,这里以amap为例)蓝奏云下载:https://wwsi.lanzouq.com/ircyq28shqsf 密码:gsqp 代码预览(部分)中间部分略

智能视频监控系统

ai智能视频监控系统是一种集防盗报警系统作用和视频监控系统功能于一体的安全性监控系统。智能视频监控系统不仅仅可以达到一般视频监控系统的远程控制监控、视频回看,还具备防盗报警系统的预警信息作用。当监测到非法侵入时,系统将积极将警报消息消息推送到移动智能终端和PC…

AI智能视频分析盒子

ai智能视频分析盒是一种集音视频编解码、传输数据、储存、个人行为分析等技术性于一体的工业控制系统级智能分析机器设备。SuiJi-ai智能视频分析盒其外界一般网络摄像头键入视频,可以识别图像中的个人行为,输出异常警报实体模型,完成出现异常情形的立即警报作用。机器设备部…

鸿蒙(HarmonyOS)常见的三种弹窗方式

最近有一个想法,做一个针对鸿蒙官方API的工具箱项目,介绍常用的控件,以及在项目中如何使用,今天介绍Harmony中如何实现弹窗功能。 警告弹窗 警告弹窗是一个App中非常常用的弹窗,例如:删除一条记录,提示一下用户:您确定要删除吗? 在App首页,点击返回时,提示一下用户:…