题解 | #最长回文子串#

最长回文子串

https://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af

#include <array>
#include <cstdint>
class Solution {
    
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param A string字符串 
     * @return int整型
     */

    string ss;

    void setstr(string  s){
        int n=2*s.size()+1;
        for(int i=0, j=0;i<n;i++){
            ss+=(i%2)==0?'#':s[j++];
        }
    }
    
    int getLongestPalindrome(string A) {
        // write code here
        int maxn=0;
        std::array<int , 2005>a;
        setstr(A);
         int c=0,r=0,i=0,len;
        for(;i<ss.size();i++){
           
          len=i<r?min(a[2*c-i],r-i):1;
          while(i+len<ss.size()&&i-len>=0&&ss[i+len]==ss[i-len]){
            len++;
          }
          if(i+len>r){
            r=i+len;
            c=i;
          }
          maxn=max(len,maxn);
          a[i]=len;
        }
          
    
      return maxn-1;
    }
};

#我的学习笔记#
全部评论

相关推荐

投递京东等公司10个岗位
点赞 评论 收藏
分享
Java大菜狗:纯纯招黑奴,一天还不到两百那么多要求,还不迟到早退,以为啥啊,给一点工资做一堆活,还以不拖欠员工工资为荣,这是什么值得骄傲的事情吗,纯纯***公司
点赞 评论 收藏
分享
彧未sr:查看图片
投递牧原集团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务