leetcodeSolution to some Leetcode problems written in C++ |
git clone git://git.dimitrijedobrota.com/leetcode.git |
Log | Files | Refs | README | LICENSE |
0132.cpp (592B)
0 class Solution {
1 public:
2 int minCut(const string &s) const {
3 static bool dp[2001][2001];
4 static int cut[2001];
5 const int n = s.size();
7 memset(dp, 0x00, sizeof(dp));
8 for (int i = 0; i < n; i++) {
9 int mini = i;
10 for (int j = 0; j <= i; j++) {
11 if (s[i] == s[j] && (i - j < 3 || dp[i - 1][j + 1])) {
12 mini = j == 0 ? 0 : min(mini, cut[j - 1] + 1);
13 dp[i][j] = true;
14 }
15 }
16 cut[i] = mini;
17 }
19 return cut[n - 1];
20 }
21 };