解题步骤:
参考代码:
- class Solution {
- public:
- bool checkPartitioning(string s) {
- int n=s.size();
- vector
bool>> dp(n,vector<bool>(n)); - for(int i=n-1;i>=0;i--)
- {
- for(int j=i;j
- {
- if(s[i]==s[j])
- {
- dp[i][j]=i+1
1][j-1]:true; - }
- }
- }
- for(int i=1;i
-1;i++) - {
- for(int j=i;j
-1;j++) - {
- //如果能找到同时满足这三个条件的,就说明该字符串可以分成三个回文串
- if(dp[0][i-1]&&dp[i][j]&&dp[j+1][n-1])
- {
- return true;
- }
- }
- }
- //找不到就返回false
- return false;
- }
- };
你学会了吗???