poj 1750 Dictionary(水题:字符串)

来源:互联网 发布:常熟淘宝培训智邦 编辑:程序博客网 时间:2024/06/08 06:43

以为当前行只与上一行有关

所以用滚动数组优化写的

代码如下:

#include <cstdio>#include <cstring>#include <iostream>using namespace std;char str[10][15];bool judge(int k, int len) {    for(int i=0; i<=len; ++i)        if(str[k][i] != str[1-k][i])            return false;    return true;}int main(void) {    int i = 0;    int len = -1;    while(scanf("%s", str[i]) != EOF) {        if(len == -1) {            printf("%s\n", str[i]);        } else {            int tmp = strlen(str[i])-1;            len = min(len, tmp);                while(len>=0 && !judge(i, len)) {                    --len;                }            if(len >= 0) {                for(int j=0; j<=len; ++j)                    printf(" ");                printf("%s\n", str[i]);            } else {                printf("%s\n", str[i]);            }        }        ++len;        i = 1-i;    }    return 0;}


0 0