Leetcode 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.

Example:

Input: "babad"

Output: "bab"

Note: "aba" is also a valid answer.
Example:

Input: "cbbd"

Output: "bb"
要找一个字符串中的最长回文字符串。
我用的比较简单但是最慢的方法,从长到短依次抽取子字符串,然后判断是否回文。
代码如下,已通过。
还有其他很好地方法,需要仔细探究

bool Palindrome(char *s,int a,int b)
{
    bool answer=true;
    while(a<b)
    {
        if(s[a]!=s[b])
        {
            answer=false;
            break;
        }
        a++;b--;
    }
    return answer;
}
char* longestPalindrome(char* s) 
{
    int length=0,i;
    while(s[length]!='\0')length++;
    i=length-1;
    while(i>=0)
    {
        for(int j=0;j<length-i;j++)
        {
            if(Palindrome(s,j,j+i)==true)
            {
                char * ans=(char *)malloc(sizeof(char)*(i+2));
                for(int k=0;k<=i;k++)
                    ans[k]=s[k+j];
                ans[i+1]='\0';
                return ans;
            }
        }
        i--;
    }
    return NULL;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容