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 }
posted @ 2022-03-19 16:04  scannerkk  阅读(131)  评论(0)    收藏  举报