回文字符串
发布时间:2020-12-15 07:44:07 所属栏目:Java 来源:网络整理
导读:题目描述: 给定一个字符串s,分割s使得s的每一个子串都是回文串 返回所有的回文分割结果 例如:给定字符串s="aab", 返回 [? ["aa","b"],? ["a","a","b"]? ] class Solution {public: vectorstring store; vectorvectorstring partition(string s) { vectorvec
题目描述:
class Solution { public: vector<string> store; vector<vector<string>> partition(string s) { vector<vector<string>> res; int n=s.size(); vector< vector<string> > bin(n);///表示以 字符串i开始的回文串 for(int i=0;i<n;i++){ for(int j=i;j<n;j++){ int k=0; while(i+k<j-k && s[i+k]==s[j-k] ) k++; if(s[i+k]==s[j-k]) { ///substr(i,len)求取以i开头 长度为len的字符串 bin[i].push_back(s.substr(i,j-i+1)); } } } dfs(0,n,bin,res); return res; } void dfs(int start,int n,vector<vector<string> >&bin,vector<vector<string> >&res ){ if(start>=n){ res.push_back(store); return; } vector<string> temp=bin[start]; for(int i=0;i<temp.size();i++){ store.push_back(temp[i]); dfs(start+temp[i].size(),res); store.pop_back(); } } }; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |