Leetcode刷题【5.最长回文子串】-创新互联

力扣第5题,最长回文子串

成都服务器托管,创新互联提供包括服务器租用、简阳服务器托管、带宽租用、云主机、机柜租用、主机租用托管、CDN网站加速、国际域名空间等业务的一体化完整服务。电话咨询:18982081108

题目描述:
给你一个字符串 s,找到 s 中最长的回文子串。

如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。

示例 1:

输入:s = “babad”
输出:“bab”
解释:“aba” 同样是符合题意的答案。

示例 2:

输入:s = “cbbd”
输出:“bb”

提示:

  • 1<= s.length<= 1000
  • s 仅由数字和英文字母组成

C语言代码实现:

void palindRom(char *str, int left, int right, int *start, int *len) 
{int str_len = strlen(str);
    while (left >= 0 && right<= str_len && str[left] == str[right]) 
    {left--;
        right++;
        if (right - left - 1 >*len) 
        {*start = left + 1;
            *len = right - left - 1;
        }
    }
}

char * longestPalindrome(char * s){if (strlen(s)< 1) 
    {return s;
    }

    int start = 0, len = 0;
    for (int i = 0; i< strlen(s); i++) 
    {// 一个元素为中心
        palindRom(s, i, i, &start, &len);
        // 两个元素为中心
        palindRom(s, i, i + 1, &start, &len);
    }
    s[start + len] = '\0';
    return s + start;
}

运行结果:
在这里插入图片描述

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享题目:Leetcode刷题【5.最长回文子串】-创新互联
转载源于:http://scyanting.com/article/dpicso.html