您的位置:首页 > 其它

PAT 1040 Longest Symmetric String

2014-11-07 00:16 281 查看
#include <cstdio>
#include <cstdlib>

using namespace std;

char line[1001];
char line2[2003];

int syslen(char str[], int start) {
int len = 1;
int p = start - 1;
int q = start + 1;
while (p >=0 && str[q] != '\0' && str[p] == str[q]) {
p--, q++;
len += 2;
}
return len;
}

int main() {
scanf("%[^\n]s", line);

int p = 0, q = 0;
line2[p++] = ' ';
line2[p++] = line[q++];
while (line[q] != '\0') {
line2[p++] = ' '; // dummy char used as seperator
line2[p++] = line[q++];
}
line2[p++] = ' ';
line2[p] = '\0';
int max_len = 0;
for (int i=0; i<p; i++) {
int cur_len = syslen(line2, i);
if (cur_len > max_len) max_len = cur_len;
}
printf("%d", max_len/2);
return 0;
}


brute force for small case
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: