打卡(11)

博主分享了解决LeetCode‘Palindrome Partitioning’问题的思路,强调了KMP算法在动态规划中的关键作用,提醒读者基础数据结构的重要性。讨论了如何通过深度搜索实现字符串回文划分,同时反思了博客写作中的不足和学习路径选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://leetcode-cn.com/problems/palindrome-partitioning/

class Solution {
private:
    vector<vector<int>> f;//类似于KMP的失败函数
    vector<vector<string>> ret;//返回的答案
    vector<string> ans;//部分答案
    int n;//n代表的是一个n的值
public:
    void dfs(const string& s, int i){
        if(i==n){
            ret.push_back(ans);//当已经到达最底层的时候
            return;//结束战争
        }
        for(int j = i; j < n; ++j) {
            if (f[i][j]) {//若当前是回文串,则进行下一轮递归
                ans.push_back(s.substr(i, j - i + 1));//将此子串放入答案中,其中substr表示从
                //下标为i的地方开始,向后数j-i+1个数字的子串
                dfs(s, j + 1);//继续递归
                ans.pop_back();//回来之后把最上面的弹出去
            }
        }
    }
    vector<vector<string>> partition(string s) {
        n = s.size();
        f.assign(n, vector<int>(n, true));//初始化全部为true
        for (int i = n - 1; i >= 0; --i) {
            for (int j = i + 1; j < n; ++j) {
                f[i][j] = (s[i] == s[j]) && f[i + 1][j - 1];//动态规划,然后得到所有的dp值
            }
        }//复杂度为O(n^2)
        dfs(s, 0);//深度搜索
        return ret;//返回答案
    }
};

笑死,看了个别人的博客,倒是没有抄袭我的嫌疑,但是真的有人写了那么多,但是一句都不到重点上,可能看着访客量觉得很有成就感呢。建议还是先学好数据结构再来写这些东西吧,太可笑了。

这个题目更多的是体会KMP的思想,想到了倒是想到了,可惜,不够细致,还是需要更加深入的思考。从前对于数学我总是能够深入思考,并且有自己的想法,这就是数学直觉吧大概,希望26岁之前能做出一点重大的成果。

看看就提交了,毕竟真的没啥好写的。最近先学好概率论再说。看来搞机器学习的不只是我一个人呐。吴恩达的机器学习,真是再适合初学者不过了呢。yygq,浅显易懂是不是该把注意力放在浅显上呢。头有点晕,可能是舟车劳顿。拔完智齿,拆完线。

我又活了。回神过来,可能自己也是某大佬看来的别人的博客吧,算了算了,别装了,别嘲讽别人了,得体一点,对一点。

还有一个简单的题目没有写对,该反思一下,自己的傲慢。所以,既然已经发明了能解决一切问题的机器宇宙机,那么能够通解一样分析所有问题的宇宙脑什么时候能问世呢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值