原题题目
代码实现(首刷小部分看解大部分猜解)
class Solution {
public:
int strangePrinter(string s) {
int n = s.size();
if(s.empty()) return 0;
vector<vector<int>> dp(n,vector<int>(n,10000));
for(int i=0;i<n;i++) dp[i][i] = 1;
for(int end=1;end<n;end++)
{
for(int start=end-1;start>=0;start--)
{
for(int gap=end;gap>start;gap--)
dp[start][end] = fmin(dp[start][end],dp[start][gap-1]+dp[gap][end]);
if(s[start] == s[end]) dp[start][end] -=1;
}
}
return dp[0][n-1];
}
};