[leetcode] 5. Longest Palindromic Substring (Medium)
找到并返回最长回路子串
思路:
解法一:
最简单的双重遍历,判断s[i]到s[j]是不是回串。
Runtime: 610 ms, faster than 6.39% of Java 慢的不行
class Solution {
public String longestPalindrome(String s) {
int len=s.length();
for (int i = 0; i < len; i++) {
int subNum = i + 1;
int subLen = len - i;
for (int j = 0; j < subNum; j++) {
String subStr = s.substring(j, j + subLen);
if (isPalindrome(subStr))
return subStr;
}
}
return "";
}
public boolean isPalindrome(String s){
int beg = 0, end = s.length() - 1;
while(beg<end){
if(s.charAt(beg)!=s.charAt(end))
return false;
beg++;
end--;
}
return true;
}
}
解法二:
遍历一次,以每一个s[i]为中心,计算。
Runtime: 4 ms, faster than 100.00% of Java
class Solution {
int len = 0, maxLength = 0, start = 0;
public String longestPalindrome(String s) {
char[] arr = s.toCharArray();
len = s.length();
if (len <= 1)
return s;
for (int i = 0; i < len; i++) {
i = helper(arr, i);
}
return s.substring(start, start + maxLength);
}
public int helper(char[] arr, int k) {
int i = k - 1, j = k;
while (j < len - 1 && arr[j] == arr[j + 1])
j++;
int nextCenter = j++;
while (i >= 0 && j < len && arr[i] == arr[j]) {
i--;
j++;
}
if (j - i - 1 > maxLength) {
maxLength = j - i - 1;
start = i + 1;
}
return nextCenter;
}
}
[leetcode] 5. Longest Palindromic Substring (Medium)的更多相关文章
- LeetCode(4) || Longest Palindromic Substring 与 Manacher 线性算法
LeetCode(4) || Longest Palindromic Substring 与 Manacher 线性算法 题记 本文是LeetCode题库的第五题,没想到做这些题的速度会这么慢,工作之 ...
- Leetcode 5. Longest Palindromic Substring(最长回文子串, Manacher算法)
Leetcode 5. Longest Palindromic Substring(最长回文子串, Manacher算法) Given a string s, find the longest pal ...
- 蜗牛慢慢爬 LeetCode 5.Longest Palindromic Substring [Difficulty: Medium]
题目 Given a string s, find the longest palindromic substring in s. You may assume that the maximum le ...
- 求最长回文子串 - leetcode 5. Longest Palindromic Substring
写在前面:忍不住吐槽几句今天上海的天气,次奥,鞋子里都能养鱼了...裤子也全湿了,衣服也全湿了,关键是这天气还打空调,只能瑟瑟发抖祈祷不要感冒了.... 前后切了一百零几道leetcode的题(sol ...
- LeetCode 5 Longest Palindromic Substring(最长子序列)
题目来源:https://leetcode.com/problems/longest-palindromic-substring/ Given a string S, find the longest ...
- 【JAVA、C++】LeetCode 005 Longest Palindromic Substring
Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...
- leetcode:Longest Palindromic Substring(求最大的回文字符串)
Question:Given a string S, find the longest palindromic substring in S. You may assume that the maxi ...
- [LeetCode][Python]Longest Palindromic Substring
# -*- coding: utf8 -*-'''__author__ = 'dabay.wang@gmail.com'https://oj.leetcode.com/problems/longest ...
- 【LeetCode】Longest Palindromic Substring 解题报告
DP.KMP什么的都太高大上了.自己想了个朴素的遍历方法. [题目] Given a string S, find the longest palindromic substring in S. Yo ...
随机推荐
- QT信号槽的六个优点(虽然直接调用函数也可解决问题,但要在具体的函数中传递指针,多对一和解除关系也够麻烦的)
信号槽是Qt中特有的概念.它使得程序员将不同的object绑定起来,而object对象间并不需要对相互了解. Slots也是普通的c++方法,它们可以是virtual;可以被重载;可以使private ...
- export命令的使用
一:export将环境变量昭告天下 1.直接输入export会将显示bash下的所有环境变量 2.env/set/export/declare都可以显示shell的变量 ...
- vuejs 使用less
当所有东西都 准备好之后 : 第一步: 安装less依赖, npm install less less-loader --save 第二步: 修改webpack.config.js文件,配置loade ...
- Laravel --- 如何较优雅的使用公用函数
一.创建公用文件 App/Helpers/CommonHelper.php 二.创建Provider php artisan make:provider HelperServiceProvider C ...
- 深入V8引擎-AST(1)
没办法了,开坑吧,接下来的几篇会讲述JavaScript字符串源码在v8中转换成AST(抽象语法树)的过程. JS代码在V8的解析只有简单的几步,其中第一步就是将源字符串转换为抽象语法树,非常类似于v ...
- Django框架rest_framework中APIView的as_view()源码解析、认证、权限、频率控制
在上篇我们对Django原生View源码进行了局部解析:https://www.cnblogs.com/dongxixi/p/11130976.html 在前后端分离项目中前面我们也提到了各种认证需要 ...
- php中\r \r\n \t的区别
\n 软回车: 在Windows 中表示换行且回到下一行的最开始位置.相当于Mac OS 里的 \r 的效果. 在Linux.unix 中只表示换行,但不会回到下一行的开始位置. ...
- 【PostgreSQL】 前缀模糊查询级优化
前匹配模糊 使用B-Tree来加速优化前匹配模糊查询 构造数据 新建一张商品表,插入一千万条数据. create table goods(id int, name varchar); insert i ...
- IT需求过程管理
IT部门就是为其他业务.内勤部门提供信息化手段的,所以在实施信息化系统的时候首先要做的就是需求调研,但是针对于绝大多数业务部门的人员而言,信息系统是很不熟悉的,我们会经常听到这样的回复“这个应该很快就 ...
- 嵌入式物联网32 ARM linux 等创客学院学习视频共享给大家
大家手机号登录学习链接即可观看 有坛友说手机号登录不上 具体自测 http://www.makeru.com.cn/live/1392_303.html?s=60220走进嵌入式http:// ...