• Source
    1. #include<bits/stdc++.h>
    2.  
    3. using namespace std;
    4.  
    5. int dp[1010][1010];
    6.  
    7. int main()
    8. {
    9.  
    10. int t,i,j,len;
    11.  
    12. char s[1010];
    13.  
    14. scanf("%d",&t);
    15.  
    16. getchar();
    17.  
    18. while(t--)
    19. {
    20. gets(s);
    21.  
    22. len = strlen(s);
    23.  
    24. for(i=0;i<=len;i++)
    25. {
    26. dp[0][i] = dp[i][0] = 0;
    27. }
    28.  
    29. for(i=1;i<=len;i++)
    30. {
    31. for(j=1;j<=len;j++)
    32. {
    33. if(s[i-1]==s[len-j])
    34. {
    35. dp[i][j] = dp[i-1][j-1]+1;
    36. }
    37. else
    38. {
    39. dp[i][j] = max(dp[i][j-1],dp[i-1][j]);
    40. }
    41. }
    42. }
    43.  
    44. printf("%d\n",dp[len][len]);
    45. }
    46.  
    47. return 0;
    48. }
    49.