题解 | #最长回文子串#

最长回文子串

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

## 思路
1、辅助函数:计算从mid1和mid2开始往两边发散的最长的长度(为了考虑奇偶的情况,设置了两个形参)
2、计算每一个点的最长回文的长度
3、注意边界条件

## 代码

```cpp
class Solution {
public:
    
    int helper(string A, int mid1, int mid2){
        while(mid1>=0 && mid2<A.size() && A[mid1]==A[mid2]){
            mid1--;
            mid2++;
        }
        int len = mid2-mid1-1;
        return len;
    }
    
    int getLongestPalindrome(string A, int n) {
        // write code here
        int i = 0;
        int max_len = 0;
        while(i<n-1){
            int len1 = helper(A, i, i);
            int len2 = helper(A, i, i+1);
            int cur_len = max(len1, len2);
            max_len = max(max_len, cur_len);
            i++;
        }
        return max_len;
    }
};
```
全部评论

相关推荐

06-27 15:15
长安大学 Java
哈哈哈,你是老六:这种就是培训机构骗钱的
点赞 评论 收藏
分享
白火同学:大二有这水平很牛了,可以适当对关键信息加粗一点,比如关键技术、性能指标之类的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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