首页 > 代码库 > L2-008. 最长对称子串
L2-008. 最长对称子串
对给定的字符串,本题要求你输出最长对称子串的长度。例如,给定"Is PAT&TAP symmetric?",最长对称子串为"s PAT&TAP s",于是你应该输出11。
输入格式:
输入在一行中给出长度不超过1000的非空字符串。
输出格式:
在一行中输出最长对称子串的长度。
输入样例:
Is PAT&TAP symmetric?
输出样例:
11
时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
陈越
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int i, j, q, k = 0; int count[10001] = {0}; char arr[1001]; int max; gets(arr); if(strlen(arr) == 1) max = 1; else{ //最长字符串为奇数 for(i = 1; i < strlen(arr)-1; i++) { j = i; q = i; while(arr[--j] == arr[++q] && j >= 0 && q < strlen(arr)) { count[k]++; } count[k] = count[k]*2+1; k++; } //最长字符串为偶数 for(i = 0; i < strlen(arr); i++) { j = i; q = i+1; while(arr[j] == arr[q] && j >= 0 && q < strlen(arr)) { j--; q++; count[k]++; } count[k] = count[k]*2; k++; } max = count[0]; for(i = 1; i < k; i++) { if(count[i] > max) max = count[i]; } } printf("%d", max); return 0; }
L2-008. 最长对称子串
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。