PAT icon indicating copy to clipboard operation
PAT copied to clipboard

[1040 Longest Symmetric String] may be

Open absop opened this issue 6 years ago • 2 comments

#include <stdio.h>

int main()
{
    int longest = 1;
    char line[1024] = {0};
    gets(line + 1); /* line[0] as sentinel */

    char *lo, *hi;
    for (char *p = line + 1; *p; ++p) {
        for (lo = p; *lo == *p; --lo);
        for (hi = p; *hi == *p; ++hi);
        for (; *lo == *hi && *lo && *hi; --lo, ++hi);
        if (hi - lo - 1 > longest) longest = hi - lo - 1;
    }
    printf("%d\n", longest);

    return 0;
}

absop avatar Sep 07 '19 15:09 absop

#include <stdio.h>

int main()
{
    int longest = 1;
    char line[1024] = {0};
    gets(line + 1); /* line[0] as sentinel */

    char *lo, *hi;
    for (char *p = line + 1; *p; ++p) {
        for (lo = p; *lo == *p; --lo);
        for (hi = p; *hi == *p; ++hi);
        for (; *lo == *hi && *lo && *hi; --lo, ++hi);
        if (hi - lo - 1 > longest) longest = hi - lo - 1;
    }
    printf("%d\n", longest);

    return 0;
}

代码很简洁。😀

tiny656 avatar Sep 13 '19 01:09 tiny656

谢谢,这是我的PAT的解答PAT,可以瞧瞧😄 2913049342 邮箱:[email protected] 签名由 网易邮箱大师 定制 On 09/13/2019 09:35, Xin Li wrote: #include <stdio.h>

int main()

{

int longest = 1;

char line[1024] = {0};

gets(line + 1); /* line[0] as sentinel */



char *lo, *hi;

for (char *p = line + 1; *p; ++p) {

    for (lo = p; *lo == *p; --lo);

    for (hi = p; *hi == *p; ++hi);

    for (; *lo == *hi && *lo && *hi; --lo, ++hi);

    if (hi - lo - 1 > longest) longest = hi - lo - 1;

}

printf("%d\n", longest);



return 0;

} 代码很简洁。😀 — You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

absop avatar Sep 13 '19 01:09 absop