一个字符串string s的某个子序列定义为:
在s中按照原先的先后次序依次取出若干个字符组成一个新的字符串,所以一个字符串s对应着一组字符串子序列
vector<string>getSubsequence(string s) {
vector<string>res;
dfs(s, "", 0, res);
return res;
}
void dfs(string s,string cur,int pos, vector<string>& strs) {
if (pos == s.size()) {
if(cur.size()>0)strs.push_back(cur);
return;
}
dfs(s, cur, pos + 1, strs);//不把s[pos]加入子序列
//将s[pos]加入子序列
cur += s[pos];
dfs(s, cur, pos + 1, strs);
}
例:s=“123”;
输出为:
3 2 23 1 13 12 123