o(N^2)找出所有回文子串

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)

 

posted @ 2025-10-21 21:37  WTSRUVF  阅读(5)  评论(0)    收藏  举报