zoukankan      html  css  js  c++  java
  • 对称字符串的最大长度 【微软面试100题 第七十三题】

    题目要求:

      输入一个字符串,输出该字符串中对称的子字符串的最大长度。比如输入字符串"google",由于该字符串里最长的对称子字符串"goog",因此输出4.

    题目分析:

      

    代码实现:

      

    #include <stdio.h>
    int LongestPalindrome(const char *s, int n);
    int main(void )
    {
        printf( "%d
    ",LongestPalindrome("abcddcbav" ,9));
        return 0;
    }
    int LongestPalindrome(const char *s, int n)
    {
        int i, j, max;
        if (s == 0 || n < 1) return 0;
        max = 0;
        // i is the middle point of the palindrome
        for (i = 0; i < n; ++i)
        {
            for (j = 0; (i-j >= 0) && (i+j < n); ++j) // if the length of the palindromeis odd
            {
                if (s[i-j] != s[i+j])
                {
                    break ;
                }
            }
            j--;
            if (j*2+1 > max) 
                max = j * 2 + 1;
    
            for (j = 0; (i-j >= 0) && (i+j+1 < n); ++j) // for the even case
            {
                if (s[i-j] != s[i+j+1])
                {   
                    break ;
                }
            }
            j--;
            if (j*2+2 > max) max = j * 2 + 2;
        }
        return max;
    }
  • 相关阅读:
    python之路
    go mod
    黑苹果流程
    mac go配置,环境配置
    mac重装系统
    多级分销概念 MongoDB||MySQL
    MongoDB查询mgov2的聚合方法
    linux被当矿机排查案例
    docker-compose容器中redis权限问题
    docker-compose中redis查询版本
  • 原文地址:https://www.cnblogs.com/tractorman/p/4115962.html
Copyright © 2011-2022 走看看