推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

最长回文子串:多种解法的递进之路.docx

资料介绍

最长回文子串:多种解法的递进之路

一、问题定义

最长回文子串(Longest Palindromic Substring)是字符串处理的经典问题:给定一个字符串,找到最长的回文子串(正读反读相同)。

s = "babad"
最长回文子串 = "bab" 或 "aba"(长度3)

s = "cbbd"
最长回文子串 = "bb"(长度2)

二、暴力解法 O(n³)

枚举所有子串,检查每个子串是否为回文。

int isPalindrome(char *s, int i, int j) {
    while (i < j) {
        if (s[i] != s[j]) return 0;
        i++; j--;
    }
    return 1;
}

int longestPalindromeBrute(char *s) {
    int n = strlen(s);
    int maxLen = 1;
    
    for (int i = 0; i < n; i++) {
        for (int j = i; j < n; j++) {
            if (isPalindrome(s, i, j)) {
                int len = j - i + 1;
                if (len > maxLen) maxLen = len;
            }
        }


部分文件列表

文件名 大小
最长回文子串:多种解法的递进之路.docx 38K

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载