func_code_string: #include <bits/stdc++.h>   using namespace std;   int n;   string s;   int dp[510][510];   bool has[510][510][30];   int dfs(int l, int r) {     if (l >= r) return 0;     int &ans = dp[l][r];     if (ans != 0) return ans;     if (!has[l + 1][r][s[l] -  a ]) return ans = dfs(l + 1, r);     ans = dfs(l + 1, r);     for (int i = l + 1; i <= r; i++)       if (s[i] == s[l]) ans = max(ans, dfs(l + 1, i) + 1 + dfs(i + 1, r));     return ans;   }   int main() {     cin >> n >> s;     for (int i = 0; i < (int)s.size(); i++)       for (int j = 0; j < (int)s.size(); j++)         for (int k = i; k <= j; k++) has[i][j][s[k] -  a ] = 1;     cout << (int)s.size() - dfs(0, s.size() - 1) << endl;     return 0;   }   