代码随想录——回溯9.分割回文串

image

这道题目最气的一点是,OJ评测输出为空,我想本地调试看看怎么回事,直接让豆包帮忙处理成可以直接运行的样子,没想到豆包帮我debug好了回文串判断方式,导致本地调试没问题。后面才意识到OJ上的回文串处理部分和本地的不一样。

思路

代码

class Solution {
public:

    vector<string> path;
    vector<vector<string>> result;

    void backTracking(string s) {
        if (s == "") {
            result.emplace_back(path);
            return;
        }
        for (int i = 0; i < s.length(); i++) {
            string substr = s.substr(0, i + 1);  // 从开头裁取i+1个字符
            if (!isHuiwen(substr)) continue;    // 不是回文,剪枝
            path.emplace_back(substr);
            backTracking(s.substr(i + 1));      // 从s[i+1]裁取
            path.pop_back();
        }
    }

    bool isHuiwen(string s) {
        int left = 0, right = s.length() - 1;  // 此处修正,right初始值应为长度减1
        while (left <= right) {
            if (s[left]!= s[right]) return false;
            left++;
            right--;
        }
        return true;
    }

    vector<vector<string>> partition(string s) {
        backTracking(s);
        return result;
    }
};
posted @   NeroMegumi  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示