leetcode第五题(Java)Longest Palindromic Substring

标签: leetcode
2人阅读 评论(0) 收藏 举报
分类:
本篇非原创,我想了很久想不到简单的方法,观摩了一下运行最快的范例,在此贴出,以供日后复习。
class Solution {
    public String longestPalindrome(String s) {
        if (s.length()<=1) return s;
        //开始和结束位置
        int[] range= new int[]{0,1};
        char[] ca= s.toCharArray();
        for (int i=0; i<ca.length; i++) {
        	//可以加速查找
        	i=helper(ca, range, i);
        }
        return s.substring(range[0], range[1]);
    }
    
    private int helper(char[] ca, int[] range, int index){
        int lo=index, hi=index;
        //往前找到第一个不一样的地方
        while(hi<ca.length-1 && ca[hi]==ca[hi+1]) hi++;
        //下一个搜索的位置
        int ret=hi;
        //从两边对比看是否一致
        while(hi<ca.length-1 && lo>0 && ca[hi+1]==ca[lo-1]){
            hi++;
            lo--;
        }
        //如果大于最长的那个
        if (hi-lo+1>range[1]-range[0]){
            range[0]=lo;
            range[1]=hi+1;
        }
        //返回下次寻找地址
        return ret;  
    }
}
7ms 
查看评论

LeetCode第五题,Longest Palindromic Substring

题目原文: Given a string S, find the longest palindromic substring in S. You may assume that the maximu...
  • hu1020935219
  • hu1020935219
  • 2014-08-05 14:29:41
  • 2887

[LeetCode][5]Longest Palindromic Substring解析 -Java实现

Q: Given a string S, find the longest palindromic substring in S. You may assume that the maxim...
  • u014629433
  • u014629433
  • 2016-06-05 13:48:00
  • 544

LeetCode(5) Longest Palindromic Substring

如果一个字符串从左向右写和从右向左写是一样的,这样的字符串就叫做palindromic string,如aba,或者abba。给定输入一个字符串,要输出一个子串,使得子串是输入字符串的最长的padro...
  • feliciafay
  • feliciafay
  • 2013-11-27 14:00:30
  • 18032

[LeetCode]5 Longest Palindromic Substring(C++,Python实现)

LeetCode OJ的第五题,如果有问题或者给我指点欢迎来信讨论ms08.shiroh@gmail.com 题目描述...
  • Shiroh_ms08
  • Shiroh_ms08
  • 2014-05-23 21:28:36
  • 3302

LeetCode5——Longest Palindromic Substring 最易懂的解法

Given a string S, find the longest palindromic substring in S. You may assume that the maximum l...
  • booirror
  • booirror
  • 2016-01-22 23:05:18
  • 1049

LeetCode 5 Longest Palindromic Substring(C,C++,Python,Java)

Problem: Given a string S, find the longest palindromic substring in S. You may assume that the ma...
  • runningtortoises
  • runningtortoises
  • 2015-05-06 15:38:22
  • 1499

Longest Palindromic Substring -- LeetCode

原题链接: http://oj.leetcode.com/problems/longest-palindromic-substring/  这道题是比较常考的题目,求回文子串,一般有两种方法。 第一种...
  • linhuanmars
  • linhuanmars
  • 2014-03-10 03:49:51
  • 20436

LeetCode Longest Palindromic Substring 最长回文子字符串 两种方法分析解答

最难想的地方:P代表一个表,比较难想的就是P表的下标i和j代表原字符串中的两个前后下标s[i]和s[j]的位置。 如果P[i,j]为真,当且仅当si-1,si-2...sj-1,sj这一个子串都为pa...
  • kenden23
  • kenden23
  • 2013-11-23 10:27:57
  • 2935

[LeetCode] 005. Longest Palindromic Substring (Medium) (C++/Java/Python)

[LeetCode] 005. Longest Palindromic Substring (Medium) (C++/Java/Python)
  • hcbbt
  • hcbbt
  • 2015-02-28 00:09:45
  • 3031

Leetcode 5. Longest Palindromic Substring 新补充Manacher算法

5. Longest Palindromic Substring Total Accepted: 98755 Total Submissions: 434700 Difficulty: Medi...
  • fantasiasango
  • fantasiasango
  • 2016-03-15 09:34:45
  • 618
    个人资料
    等级:
    访问量: 253
    积分: 114
    排名: 122万+
    文章分类
    文章存档
    最新评论