zoukankan      html  css  js  c++  java
  • Leetcode131. Palindrome Partitioning分割回文串

    给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。

    返回 s 所有可能的分割方案。

    示例:

    输入: "aab" 输出: [ ["aa","b"], ["a","a","b"] ]

    class Solution {
    public:
        vector<vector<string> >res;
        int len;
        vector<vector<string> > partition(string s) 
        {
            len = s.size();
            if(len == 0)
                return res;
            vector<string> v;
            DFS(v, s, 0);
            return res;
        }
    
        void DFS(vector<string> &v, string str, int pos)
        {
            if(pos >= len)
            {
                res.push_back(v);
            }
            for(int i = pos; i < len; i++)
            {
                int flag = true;
                for(int j = 0; j <= (i - pos + 1) / 2; j++)
                {
                    if(str[pos + j] != str[i - j])
                    {
                        flag = false;
                        break;
                    }
                }
                if(!flag)
                    continue;
                v.push_back(string(str.begin() + pos, str.begin() + i + 1));
                DFS(v, str, i + 1);
                v.pop_back();
            }
        }
    };
  • 相关阅读:
    JAVAGUI设计步骤
    JAVA接口基础知识总结
    静态关键字static用法。
    JAVA面向对象的多态性
    java封装的概念
    多线程
    关于集合类间的区别
    JAVA——异常
    java——内部类
    Java——接口
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10433825.html
Copyright © 2011-2022 走看看