PAT-A-1040. Longest Symmetric String (25)

来源:互联网 发布:太阳辐射强度数据 编辑:程序博客网 时间:2024/05/01 12:15

1040. Longest Symmetric String (25)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
16000 B
判题程序
Standard
作者
CHEN, Yue

Given a string, you are supposed to output the length of the longest symmetric sub-string. For example, given "Is PAT&TAP symmetric?", the longest symmetric sub-string is "s PAT&TAP s", hence you must output 11.

Input Specification:

Each input file contains one test case which gives a non-empty string of length no more than 1000.

Output Specification:

For each test case, simply print the maximum length in a line.

Sample Input:
Is PAT&TAP symmetric?
Sample Output:
11
#include<iostream>#include<cstdio>#include<string>using namespace std;const int maxn = 1010;int dp[maxn][maxn] = { 0 };string s;int main(){  getline(cin, s);    int ans=1;  int len = s.length();  for (int i = 0; i < len; i++)  {    dp[i][i] = 1;    if (i < len - 1)    {      if (s[i] == s[i + 1])      {        dp[i][i + 1] = 1;        ans = 2;      }    }  }  for (int l = 3; l <= len; l++)  {    for (int i = 0; i + l - 1 < len; i++)    {      int j = i + l - 1;      if (s[i] == s[j] && dp[i + 1][j - 1] == 1)      {        dp[i][j] = 1;        ans = l;      }    }  }  cout << ans << endl;  system("pause");  return 0;}

原创粉丝点击