PTA最长对称子串
一、题目描述
二、解题思路
这个题就是个暴力枚举题,分两种情况。
(1)——奇数情况:我们可以这样搜,从某个位置开始向两边枚举,直到到边界
(2)——偶数情况:对于每一个位置,我们从当前位置向左,从当前位置的下一个位置向右。
三、代码实现
1 #include "stdio.h" 2 #include "stdlib.h" 3 #include "string.h" 4 #include "math.h" 5 char s[1010]; 6 int solve() 7 { 8 int len = strlen(s); 9 int ans = -999999999; 10 for(int i = 0;i < len;i++){ 11 int l,r; 12 l = r = i; 13 while(l >= 0 && r < len){ 14 if(s[l] != s[r]) 15 break; 16 r++; 17 l--; 18 } 19 int l1,r1; 20 l1 = i,r1 = i + 1; 21 while(l1 >= 0 && r1 < len){ 22 if(s[l1] != s[r1]) 23 break; 24 l1--; 25 r1++; 26 } 27 if(ans < (r - l - 1)) 28 ans = r - l - 1; 29 if(ans < (r1 - l1 - 1)) 30 ans = r1 - l1 - 1; 31 } 32 return ans; 33 } 34 int main() 35 { 36 gets(s); 37 printf("%d",solve()); 38 return 0; 39 }
本文来自博客园,作者:{scanner},转载请注明原文链接:{https://home.cnblogs.com/u/scannerkk/}