题解 | #密码截取#

密码截取

https://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1

遍历以单个字母展开的、两个相同字母展开的,取最大值。
#define MAX(a,b) (a>b)?(a):(b)


int main()
{
    int n;
    char str[2501];
    int max;
    
    scanf("%s", str);
    n = strlen(str);
    
    int j, k;
    max = 0;
    for(int i=0; i<n; i++)
    {
        j = i-1;
        k = i+1;
        if(j<0 || k>=n)
        {
            max = MAX(max,1);
            continue;
        }
        while(j>=0 && k<n && str[j]==str[k])
        {
            j--;
            k++;
        }
        max = MAX(max, k-j-1);
        
        j = i;
        k = i+1;
        while(j>=0 && k<n && str[j]==str[k])
        {
            j--;
            k++;
        }
        max = MAX(max, k-j-1);
        
       
    }
    printf("%d\n", max);
}



全部评论

相关推荐

06-23 11:43
门头沟学院 Java
allin校招的烤冷面很爱看电影:我靠,今天中午我也是这个hr隔一个星期发消息给我。问的问题还是一模一样的😅
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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