1、对于一个字符串如果(i - 1, j - 1)为回文串,并且s[i] == s[j],那么(i, j)也是一个回文串
2、双重循环,外层从大到小,内层从小到大,这样就可以由小区间推到大区间(可以写下思考一下)
int vis[2010][2010];memset(vis, 0, sizeof(vis));int n = s.size();for (int i = n - 1; i >= 0; i--) {for (int j = 0; j < n; j++) {if (i >= j) vis[i][j] = true;else vis[i][j] = vis[i + 1][j - 1] && (s[i] == s[j]);}}
题目练习:
131. 分割回文串 - 力扣(LeetCode)
132. 分割回文串 II - 力扣(LeetCode)