L2-008. 最长对称子串(思维题)*

L2-008. 最长对称子串

参考博客

 1 #include <iostream>
 2 using namespace std;
 3 int main() {
 4     string s;
 5     getline(cin, s);
 6     int maxvalue = 0, temp;
 7     int len = s.length();
 8     for(int i = 0; i < len; i++) {
 9         temp = 1;
10         ///回文串为奇数
11         for(int j = 1; j < len; j++) {
12             if(i - j < 0 || i + j >= len || s[i - j] != s[i + j])
13                 break;
14             temp += 2;
15         }
16         ///回文串为偶数
17         maxvalue = temp > maxvalue ? temp : maxvalue;
18         temp = 0;
19         for(int j = 1; j < len; j++) {
20             if(i - j + 1 < 0 || i + j >= len || s[i - j + 1] != s[i + j])
21                 break;
22             temp += 2;
23         }
24         maxvalue = temp > maxvalue ? temp : maxvalue;
25     }
26     cout << maxvalue;
27     return 0;
28 }
原文地址:https://www.cnblogs.com/Annetree/p/8678537.html