题解 | #最长回文子串#

最长回文子串

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

 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param A string字符串 
 * @return int整型
 *
 * C语言声明定义全局变量请加上static,防止重复定义
 */
int getLongestPalindrome(char* A ) {
    // write code here
    int len = strlen(A), max = 1;
    if(len == 0)return 0;
        for(int i = 0; i < len-1; i++){
            int t = i, k = i+1;
            if(A[t] == A[k]){
                while(t >= 0 && k < len && A[t] == A[k]){
                    t--;
                    k++;
                }
                if(k-t-1 > max){
                    max = k-t-1;
                } 
            }
        }
   
        for(int i = 1; i < len-1; i++){
            int t = i-1, k = i+1;
            while(t >= 0 && k < len && A[t] == A[k]){
                t--;
                k++;
            }
            if(k-t-1 > max){
                max = k-t-1;
            }
        }
    
    return max;
}
全部评论

相关推荐

Hello_WordN:咱就是说,除了生命其他都是小事,希望面试官平安,希望各位平时也多注意安全
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务