leetcode 5. 最长回文子串

标签: C leetcode
0人阅读 评论(0) 收藏 举报
分类:
void check(char *s,int len,int l,int r,int* start,int* maxlen){
    while(l>-1&&r<len&&s[l]==s[r]) l--,r++;
    int len0=r-l-1;
    if(len0>*maxlen){
        *maxlen=len0;
        *start=l+1;
    }
}
char* longestPalindrome(char* s) {
    int len=strlen(s);
    if(len<2) return s;
    int start=0;
    int maxlen=0;
    for(int i=0;i<len-1&&len-i>maxlen/2;i++){
        check(s,len,i,i,&start,&maxlen);
        check(s,len,i,i+1,&start,&maxlen);
    }
    char* t=(char*)malloc(sizeof(char)*(maxlen+1));
    memcpy(t,s+start,sizeof(char)*maxlen);
    t[maxlen]='\0';
    return t;
    
}

check从里面开始扩散,看字串是否是回文串,直到扩散到最大就是最长回文子串

O(n2)的时间复杂度,速度还可以

查看评论

leetcode解题之5. Longest Palindromic Substring Java版(最长回文子串)

leetcode解题之5. Longest Palindromic Substring Java版(最长回文子串)
  • mine_song
  • mine_song
  • 2017-04-06 13:07:10
  • 263

Leetcode#5. Longest Palindromic Substring(最长回文子串:二种解法)

题目Given a string s, find the longest palindromic substring in s. You may assume that the maximum len...
  • xunalove
  • xunalove
  • 2017-08-26 21:10:57
  • 479

Leetcode: 5 Longest Palindromic Substring 最长回文子串

Discription:Given a string s, find the longest palindromic substring in s. You may assume that the m...
  • BeforeEasy
  • BeforeEasy
  • 2018-03-21 19:40:29
  • 7

LeetCode 5. Longest Palindromic Substring 最长回文子串 Python 四种解法(Manacher 动态规划)

Longest Palindromic Substring 最长回文子串 学习笔记 1. Brute method 第一种方法:直接循环求解,o(n2)o(n^2) class Sol...
  • asd136912
  • asd136912
  • 2018-01-06 11:41:46
  • 558

Longest Palindromic Substring 在一个字符串里找最长回文子串@LeetCode

题目是不难(思路好想),但要细心写才不会错!特别注意到有偶数个和奇数个palindrome的情况,以及两者的优先级不同! package Level4; /** * Longest Pali...
  • hellobinfeng
  • hellobinfeng
  • 2013-11-10 07:02:20
  • 2542

leetcode 第五题 最长回文子串

http://www.tuicool.com/articles/n6NfIrN 动态规划刚刚重新学,这道题实在想不出来,百度了一下才发现 动态规划的时间复杂度最少都n方。。。。。。。。。...
  • a498506133
  • a498506133
  • 2016-09-18 14:54:43
  • 656

【LeetCode 214】最长回文子串

题目链接: https://leetcode.com/problems/shortest-palindrome/ 题目描述: 给一个字符串s, 求在其前方添加最少的字符使添加后的s是回文串,并返...
  • zhong123123123
  • zhong123123123
  • 2016-05-06 13:07:33
  • 649

leetcode第五题—最长回文字符串

最长回文字符串(Longest Palindromic Substring ) 1.中心结点法,时间复杂度为O(n^2) 回文字符串都是对称的,有两种对称方式,一是关于字符对称,比...
  • kesonyk
  • kesonyk
  • 2015-07-23 17:52:53
  • 935

【LeetCode-面试算法经典-Java实现】【005-Longest Palindromic Substring(最长回文子串)】

【005-Longest Palindromic Substring(最长回文子串)】给定一个字符串S,找出它的最大的回文子串,你可以假设字符串的最大长度是1000,而且存在唯一的最长回文子串。动态规...
  • DERRANTCM
  • DERRANTCM
  • 2015-07-17 06:42:01
  • 2950

LeetCode 5 最长回文子串 Manacher算法

题意求最长回文子串思路 最长回文子串,我一直没好好学一下O(n)的算法,趁刷LeetCode的机会学一下~ Manacher算法,其实还是一种dp的方法,这里大体介绍一下思路~ 首先,一个小技巧,每隔...
  • luke2834
  • luke2834
  • 2016-06-21 00:25:29
  • 223
    个人资料
    等级:
    访问量: 0
    积分: 50
    排名: 0
    文章分类
    文章存档