fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int main() {
  6. int n;
  7. scanf("%d", &n);
  8. while (n--) {
  9. string s;
  10. cin >> s;
  11. int len = s.length();
  12. int dp[len][len];
  13. for (int i = 0; i < len; i++) {
  14. dp[i][i] = 1;
  15. }
  16. for (int i = len-1; i >= 0; i--) {
  17. for (int j = i+1; j < len; j++) {
  18. if (s[i] == s[j]) {
  19. dp[i][j] = 2;
  20. if (j - i > 1) {
  21. dp[i][j] += dp[i+1][j-1];
  22. }
  23. } else {
  24. dp[i][j] = max(dp[i+1][j], dp[i][j-1]);
  25. }
  26. }
  27. }
  28. cout << dp[0][len-1] << '\n';
  29. }
  30. }
Success #stdin #stdout 0s 5304KB
stdin
5
wewewe
pelatnas
kedua
di
jogja
stdout
5
3
1
1
3