5. 最长回文子串

举报
海轰Pro 发表于 2022/08/31 14:32:06 2022/08/31
【摘要】 5. 最长回文子串题目给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"示例 3:输入:s = "a"输出:"a"示例 4:输入:s = "ac"输出:"a"提示:1 <= s.length <= 1000s 仅由数字和英文字母(大写和/或小写)组成解...

5. 最长回文子串

题目

给你一个字符串 s,找到 s 中最长的回文子串。


示例 1:

输入:s = "babad"

输出:"bab"

解释:"aba" 同样是符合题意的答案。


示例 2:

输入:s = "cbbd"

输出:"bb"


示例 3:

输入:s = "a"

输出:"a"


示例 4:

输入:s = "ac"

输出:"a"


提示:

  • 1 <= s.length <= 1000
  • s 仅由数字和英文字母(大写和/或小写)组成

解答(C++)

方法一【暴力】

class Solution {
public:
    bool isPalindromicSubstring(string s) {
        int left = 0;
        int right = s.length() - 1;
        while(left < right) {
            if(s[left] != s[right]) {
                return false;
            } else {
                ++left;
                --right;
            }
        }
        return true;
    }
    string longestPalindrome(string s) {
        int n = s.length();
        int maxLength = 0;
        string ans;
        for(int i = 0; i < n; ++i) {
            for(int j = i; j < n; ++j) {
              string temp = s.substr(i, j-i+1);
              if(isPalindromicSubstring(temp) && j-i+1 > maxLength) {
                  ans = temp;
                  maxLength = j - i + 1;
              }
            }
        }
        return ans;
    }
};

解答(Python)

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。