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

免费建立手机网站软文网站名称

免费建立手机网站,软文网站名称,深圳网站设计建设,福田公司1.题目解析 题目来源:5.最长回文子串——力扣 测试用例 2.算法原理 1.状态表示 判断回文子串需要知道该回文子串的首尾下标,所以需要一个二维数组且数据类型为bool类型来存储每个子字符串是否为回文子串, 即dp[i][j]:以第i个位置为起始&a…

1.题目解析

题目来源:5.最长回文子串——力扣 

测试用例 

2.算法原理

1.状态表示

判断回文子串需要知道该回文子串的首尾下标,所以需要一个二维数组且数据类型为bool类型来存储每个子字符串是否为回文子串,

即dp[i][j]:以第i个位置为起始,第j个位置为结尾的子字符串是否为回文子串

2.状态转移方程

当需要判断的子字符串长度小于3可以直接判断是否相等,相等则直接为true,反之则为false

当长度大于3时则需要向中间判断,也就是将长字符串拆分为单个字符穿与两个字符串的情况即可

3.初始化

无需初始化,因为dp表存储的值为bool类型,因此在填表的过程中就动态的将每个位置赋了值

4.填表顺序

因为需要可能用到dp[i+1][j-1]也就是二维表的左下位置,因此需要从下向上填表

5.返回值

这里的dp表每个位置存储的都是该子字符串是否为回文子串,因此需要逐个判断找出最长的回文子串并求出其起始位置与长度,然后返回该子字符串即可

3.实战代码

代码分析 

class Solution {
public:string longestPalindrome(string s) {int n = s.size();vector<vector<bool>> dp(n,vector<bool>(n));int len = 1,begin = 0;for(int i = n - 1;i >= 0;i--){for(int j = i;j < n;j++){if(s[i] == s[j]){dp[i][j] = i + 1 < j ? dp[i+1][j-1] : true;}if(dp[i][j] && j - i + 1 > len){len = j - i + 1;begin = i;}}}   return s.substr(begin,len);}
};

 

http://www.zhongyajixie.com/news/64649.html

相关文章:

  • wordpress网站建小程序自媒体论坛交流推荐
  • 南昌专业制作网站在百度怎么免费发布广告
  • 深圳市龙华区龙华街道被公司优化掉是什么意思
  • 郑州建站模板seo技术团队
  • 做毕业网站的周记seo综合查询怎么用
  • 橙子建站是真实的吗网络营销师月薪
  • 网站用户维护my77728域名查询
  • 外贸免费自助建站平台seo服务公司
  • 网站建站企业关键词搜索工具好站网
  • 衢州集团网站建设免费推广软件下载
  • 网站排名易下拉系统网站发布流程
  • 嵊州门户网站站长工具搜索
  • 凡科网站建设价格淘宝美工培训推荐
  • 做啥类型网站今日军事新闻最新消息中国
  • 空间业务建设网站中国企业500强排行榜
  • wordpress管理网址网站seo优化方法
  • 企业建设网站公司郑州百度快照优化排名
  • 安徽省住房和城乡建设厅官方网站站长工具关键词排名怎么查
  • 专注软件开发网站关键词优化建议
  • 做家教网站怎么样google引擎入口
  • 沧州市高速公路建设管理局网站正规代运营公司排名
  • 采用wordpress太原百度网站快速优化
  • 免费注册自己的网站北京seo网站优化培训
  • lnmp搭建后怎么做网站怎么自己做网页
  • wordpress 分页导航无效seo新人怎么发外链
  • 高端网页制作公司哪家好石家庄自动seo
  • 微信创建公众号seo外链工具
  • 企业网站模板 简洁百度收录技巧
  • 做门户网站起什么域名好国外友链买卖平台
  • 影视广告网站seo研究院