string+DP leetcode-4.最长回文子串
5. Longest Palindromic Substring
题面
Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
找出给定数组中,最长的回文子串。最长输入尾1000。
样例
Example 1:
Input: "babad"
Output: "bab"
Note: "aba" is also a valid answer.Example 2:
Input: "cbbd"
Output: "bb"Example 3:
Input: "abcd"
Output: "a"Example 4:
Input: "eeeeeeeeeeeeeeeeeeeeee"
Output: "eeeeeeeeeeeeeeeeeeeeee"
思路1:暴力,不可行。
判断每一个字串是否是回文串,找出最长。
事件复杂度:O(n3) (1000的输入, n3复杂度, 10003=109,会超1000ms)
class Solution {
public:
string longestPalindrome(string s) {
string res = "";
int len = s.length();
if(len == || len == )
return s;
for(int i=; i<len; i++)
{
string tmpStr = "";
tmpStr += s[i];
int j = i+;
for(; j<len; j++)
{
if(s[j] != s[i])
tmpStr += s[j];
else
{
tmpStr += s[j];
if(judge(tmpStr) && tmpStr.length() > res.length())
res = tmpStr;
}
}
}
if(res.length() == )
res += s[];
return res;
}
bool judge(string s)
{
int len = s.length();
for(int k=; k<=len/; k++)
if(s[k] != s[len--k])
return false;
return true;
}
};
思路2:DP
class Solution {
public:
string longestPalindrome(string s) {
int len = s.length();
if(len < )
return s;
bool dp[len][len] = {};
int start = , span = ;
for(int i=; i<len; i++)
{
dp[i][i] = ;
for(int j=; j<i; j++)
{
dp[j][i] = (s[i]==s[j] && (i-j < || dp[j+][i-]));
if(dp[j][i] && (i-j+ > span))
{
span = i-j+;
start = j;
}
}
}
return s.substr(start, span);
}
};
string+DP leetcode-4.最长回文子串的更多相关文章
- LeetCode:最长回文子串【5】
LeetCode:最长回文子串[5] 题目描述 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为1000. 示例 1: 输入: "babad" 输出: ...
- 【LeetCode】最长回文子串【动态规划或中心扩展】
给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad"输出: "bab"注意: " ...
- (最长回文子串 线性DP) 51nod 1088 最长回文子串
输入一个字符串Str,输出Str里最长回文子串的长度. 回文串:指aba.abba.cccbccc.aaaa这种左右对称的字符串. 串的子串:一个串的子串指此(字符)串中连续的一部分字符构成的子(字符 ...
- Java实现 LeetCode 5 最长回文子串
5. 最长回文子串 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab&quo ...
- [LeetCode] 5. 最长回文子串 ☆☆☆(最长子串、动态规划)
最长回文子串 (动态规划法.中心扩展算法) https://leetcode-cn.com/problems/longest-palindromic-substring/solution/xiang- ...
- 【LeetCode】最长回文子串-中心扩展法
[问题]给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 : 输入: "babad" 输出: "bab" 注意: ...
- [leetCode]5. 最长回文子串(DP)
题目 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 题解 dp.先初始化长度为1和长度为2的串.再依次算长度为3,4,5.... 当找到回文串时,若长度比当 ...
- [LeetCode] 5. 最长回文子串
题目链接:https://leetcode-cn.com/problems/longest-palindromic-substring/ 题目描述: 给定一个字符串 s,找到 s 中最长的回文子串.你 ...
- 【LeetCode】最长回文子串-动态规划法
[问题]给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 : 输入: "babad" 输出: "bab" 注意: ...
- 【leetcode 5. 最长回文子串】解题报告
方法一:中心扩展算法 解题思路:从左到右每一个字符都作为中心轴,然后逐渐往两边扩展,只要发现有不相等的字符,则确定了以该字符为轴的最长回文串,但需要考虑长度为奇数和偶数的不同情况的处理(长度为偶数时轴 ...
随机推荐
- Linux -- Reactor
结构 1. handles 资源的标志.这些资源通常包含网络连接,文件,定时器,同步对象等.handles 被用在注册服务器来标记socket,以便同步事件复用(Synchronous Event D ...
- 123457123456#0#-----com.twoapp.jingPinYinYu01----儿童学英语jiemei
com.twoapp.jingPinYinYu01----儿童学英语jiemei
- ELK之elasticsearch7版本集群设置
ELK7版本搭建参考:https://www.cnblogs.com/minseo/p/10948632.html node-1已经安装配置好 配置文件如下 [root@salt-test conf. ...
- 第二十二章 集成验证码——《跟我学Shiro》
目录贴:跟我学Shiro目录贴 在做用户登录功能时,很多时候都需要验证码支持,验证码的目的是为了防止机器人模拟真实用户登录而恶意访问,如暴力破解用户密码/恶意评论等.目前也有一些验证码比较简单,通过一 ...
- 【ARTS】01_33_左耳听风-201900624~201900630
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- git推送远程仓库以及分支介绍
1.介绍 我们要把本地仓库的项目推送到远程服务器,首先我们得有自己的服务器,一般我们选择码云和github,码云和github的操作差不多,今天我们再次介绍码云的使用 2.码云的使用 第一步:首先我们 ...
- DefaultListBeanFactory的子类之SimpleAliasRegistry
DefaultListBeanFactory类结构层次图 从继承图看,SimpleAliasRegistry是DefaultListBeanFactory继承类中最底层的实现类. SimpleAlia ...
- 三节课MINI计划第二周
任务:完成一份用户反馈的收集,并进行分析 第一步:去你能想到的公开.非公开渠道收集最近90天,至少40条和B站相关的有效用户差评反馈,并根据你对业务的理解分类整理,以表格的形式进行整理,以图片的方式提 ...
- AutoMapper扩展帮助类
/// <summary> /// AutoMapper扩展帮助类 /// </summary> public static class AutoMapperExtension ...
- 日常工作问题解决:du命令详解
目录 1.导读 1.1 命令格式 1.2 命令功能 1.3 命令参数 2.实例 2.1 实例1:显示目录或者文件所占空间 2.2 实例2:显示指定文件所占空间 2.3 实例3:查看指定目录所占空间 2 ...