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);

    }

};

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五月的天气

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值