leecode第五题(最长回文子串)
class Solution {
public:
string longestPalindrome(string s) { int len = s.length();
if (len == || len == )
return s; int index = , max_num = ; for (int i = ; i < len; i++)//检测奇数上的左右是否相同,例如aba,以b为中心
{
int t = i - , tt = i + , cur_num = ;
while (t >= && tt < len && s[t] == s[tt])//我之前把s[t] == s[tt]放开始判断,但是遇到t=-1会报错,为了解决,先判断t》=0
{
cur_num = tt - t + ;
if (cur_num > max_num)
{
index = t;
max_num = cur_num;
}
t--;
tt++;
}
} for (int i = ; i < len; i++)//检测偶数位上的左右是否相同,例如baab,以aa开始扩展
{
int t = i, tt = i + , cur_num = ;
while (t >= && tt < len && s[t] == s[tt])
{
cur_num = tt - t + ;
if (cur_num > max_num)
{
index = t;
max_num = cur_num;
}
t--;
tt++;
}
} return s.substr(index, max_num); }
};
分析:
开始时候想到的是另一种动态规划法:开始时从头遍历每个字符,在每个字符开始时,设置一个尾指针从尾到头遍历,若二者相同,就判断这俩内部是不回文(写个小循环即可)。这个虽然写了三个循环,但是循环条件可以加上“当前两个指针距离大不大于最大的回文子串长度”,若小于,即便是回文也没必要判断了,这样一来虽然时间复杂度一样,但是节省很多啊,不过运行提醒我stack不足。。一开始我以为我想错了要不就是三个循环炸了,就看了题解的思想写成这个,但是后来我想应该是写错了,因为好像是s[t] == s[tt]放开始判断引起的问题(leecode的error提示真扯淡,和vs不一样),尴尬。
leecode第五题(最长回文子串)的更多相关文章
- leetcode刷题五<最长回文子串>
下面是题目的描述 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 . 示例 : 输入: "babad" 输出: "bab" 注意: ...
- 【LeetCode每日一题 Day 5】5. 最长回文子串
大家好,我是编程熊,今天是LeetCode每日一题的第五天,一起学习LeetCode第五题<最长回文子串>. 题意 给你一个字符串 s,找到 s 中最长的回文子串. 示例 输入:s = & ...
- 最长回文子串 C++实现 java实现 leetcode系列(五)
给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &qu ...
- LeetCode随缘刷题之最长回文子串
这一题我用的相对比较笨的方法. 相对于大佬们用的动态规划法,比较复杂.但却更容易理解,我主要是通过记录下标来确定最长回文串的. package leetcode.day_12_06; /** * 给你 ...
- 后缀数组 - 求最长回文子串 + 模板题 --- ural 1297
1297. Palindrome Time Limit: 1.0 secondMemory Limit: 16 MB The “U.S. Robots” HQ has just received a ...
- hihocode #1032 : 最长回文子串【manacher】模板题
题目链接:https://vjudge.net/problem/HihoCoder-1032 manacher算法详解:https://blog.csdn.net/dyx404514/article/ ...
- PAT甲题题解-1040. Longest Symmetric String (25)-求最长回文子串
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789177.html特别不喜欢那些随便转载别人的原创文章又不给 ...
- LeetCode(5):最长回文子串
Medium! 题目描述: 给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 长度最长为1000. 示例: 输入: "babad" 输出: "bab&quo ...
- 1089 最长回文子串 V2(Manacher算法)
1089 最长回文子串 V2(Manacher算法) 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 回文串是指aba.abba.cccbccc.aaaa ...
- 51nod1089(最长回文子串之manacher算法)
题目链接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1089 题意:中文题诶~ 思路: 我前面做的那道回文子串的题 ...
随机推荐
- MySQL笔记(七)远程连接MySQL
mysql 默认只允许 localhost 连接,因此在远程连接服务器上的 mysql 之前,需要做一些设置.在没有设置前,默认是下面的状况,mysql 只能由 localhost(127.0.0.1 ...
- GUID生成函数
/** * GUID生成函数 * @return string */function create_guid() { $charid = strtoupper(md5(uniqid(mt_rand() ...
- Program terminated with signal 6, Aborted,有可能啥原因呢?
Program terminated with signal 6, Aborted,有可能啥原因呢?其中一种原因就是事实上的OOM(虽然/var/log/message中没有标明操作系统kill了进行 ...
- k8s tensorflow
Online learning github source Kubeflow实战系列 Prepare 了解ksonnet初探Google之Kubeflow (采用的是0.8.0)install dep ...
- mysql读写分离[高可用]
顾名思义, 在mysql负载均衡中有多种方式, 本人愚钝,只了解驱动中间件和mysql_proxy两种方式, 对于驱动,利用的是ReplicationDriver,具体请看远哥的这篇文章: MySQL ...
- 20145212 罗天晨 Web安全基础实践
一.实验后回答问题 (1)SQL注入攻击原理,如何防御 原理:SQL注入攻击是攻击者在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,把SQL语句当做用户名等输入正常网页中以获取数据 ...
- Java基础——javaMail:使用心得
想要做一个java发送邮件小功能. 使用的maven搭建的项目. <!-- https://mvnrepository.com/artifact/javax.mail/mail -->&l ...
- Dockerfile 收集
Dockerfile 收集 1.最基础的oracle-jdk FROM centos:7.2.1511 MAINTAINER hongdada "hongdaqi159505@gmail.c ...
- Sublime text 3 汉化教程
首先,需要安装Package Control 启动并进入sublime主界面,打开Sublime Text的控制台(快捷键 ctrl + ~) 然后我们到Package Control官方网站,复制s ...
- 02:httpd-2.2基础配置
---恢复内容开始--- 9.日志设定 错误日志: ErrorLog logs/error_log //这里使用了相对路径,相对于/etc/httpd/路径 LogLevel warn //定义日志 ...