leetcode五月每日一题 leetcode5

在这里插入图片描述在这里插入图片描述
使用的是中心扩散法。
如当abeba是回文字符串的时候,去掉两边的a,beb也是回文字符串
abc不是回文字符串的时候,两边都加上一样的字母eabce也不是回文字符串

另外这里要区分字符串为奇数和偶数的情况
奇数:中心点是什么元素不用管
偶数:中心点两个元素要相同

所以这里扫描一遍字符串,对每一个字符都进行一次中心扩散法,来找到最长字串

class Solution {

private:
        int substringlen(int l , int r , string s){
            while(l >= 0 && r < s.size() && s[l] == s[r]){

                    -- l; ++ r;
            }

            return r - l -1;
        }

public:
    string longestPalindrome(string s) {

        int len = 0; int start = 0;
        int n = s.size();
        for(int i = 0 ; i < n ; ++ i){
            int curlen = max( substringlen(i,i,s),substringlen(i, i+1, s));
            if(curlen > len){
                len = curlen;
                start = i - (len - 1) / 2;
            }
        }

    return s.substr(start,len);

    }

};

昨天今天收到了好多考研的同学上岸的消息啊
她们真的好厉害,恭喜恭喜🎉

自己接下来一定要更加努力的学习,找到一份工作啊
加油加油加油

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读