题解 | #密码截取#

密码截取

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);
}



全部评论

相关推荐

一天代码十万三:这个学历有中大厂实习也是0面,没办法,斩杀线是这样的
点赞 评论 收藏
分享
黑皮白袜臭脚体育生:还是喜欢你劝退测开时候桀骜不驯的样子,麻烦恢复一下
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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