leetcode 131. 分割回文串

class Solution {
public:
vector<vector<string>>res;
 vector<vector<string>> partition(string s)
 {
     dfs(s,{});
     return res;
 }

 void dfs(string s,vector<string>ans)
 {
     if(s.length()==0)
     {
         res.push_back(ans);
     }
     for(int i=1;i<=s.length();i++)
     {
         string str=s.substr(0,i);
         if(f(str))
         {
             ans.push_back(str);
             dfs(s.substr(i),ans);//回溯,如果(0,i)个字符所组成的字符串为回文串那么从第i个字符往后找
             ans.pop_back();
         }
     }
 }

bool f(string s)//判断是否为回文串
{
    int left=0,right=s.length()-1;
    while(left<=right)
    {
        if(s[left]!=s[right])
        {
            return false;
        }
        left++;
        right--;
    }
    return true;
}
};

leetcode 131. 分割回文串

上一篇:Calendar日历类(抽象类)的使用


下一篇:linux系统上安装java