4.26编程打卡

不说了,汗颜

最长回文字串.cpp

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<string>
 4 #include<stdlib.h>
 5 
 6 using namespace std;
 7 const int N = 5000;
 8 int judge(char array[], int n, int m)
 9 {
10     int i = n, j = n, k, o = n, p = n;
11     int sum = 0;
12     for (; i > 0 && o < N ; i--, o++)
13     {
14         while (array[i] > 122 || array[i] < 65)
15         {
16             i--;
17         }
18         while (array[o] > 122 || array[o] < 65)
19         {
20             o++;
21         }
22         if (array[i] == array[o])
23         {
24             sum++;
25         }
26         else
27         {
28             if (m == 1)
29             {
30                 for (k = i + 1; k < o ; k++)
31                 {
32                     cout << array[k];
33                 }
34             }
35             break;
36         }
37     }
38     for (; j > 0 && p < N; j--, p++)
39     {
40         while (array[j] > 122 || array[j] < 65)
41         {
42             j--;
43         }
44         while (array[p] > 122 || array[p] < 65)
45         {
46             p++;
47         }
48         if (array[j-1] == array[p])
49         {
50             sum++;
51         }
52         else
53         {
54             if (m == 1)
55             {
56                 for (k = j-1; k < p; k++)
57                 {
58                     cout << array[k];
59                 }
60             }
61             break;
62         }
63     }
64     return sum;
65 }
66 int main()
67 {
68     char array[N];
69     int max = 0, po;
70     cin.getline(array,N);
71     int i, j = 0;
72     for (i = 0; i < strlen(array); i++)
73     {
74         if (judge(array, i, 0) != 0)
75         {
76             if (max < judge(array, i, 0))
77             {
78                 max = judge(array, i, 0);
79                 po = i;
80             }
81         }
82     }
83     judge(array, po, 1);
84     system("pause");
85     return 0;
86 }
原文地址:https://www.cnblogs.com/ncoheart/p/8950379.html