求一个字符串的子序列数,输入一个字符串s和子序列数的长度n,输出子序列数,
输入:
word,2
输出:
6
解释:
word的长度为2的子串有:wo,wr,wd,or,wd,rd
解题思路:
1、考虑使用组合公式C(s.size(),n),但是这样不能排除字符串中相邻的字符是相同的情况,比如s=“aaa”,n=2. 组合公式得到的结果是C(3.2)=3,但是实际答案只能是一种“aa”,所以直接组合公式是不正确的。
2、使用深度优先搜索,对于重复的子序列用set去重
#include <bits/stdc++.h>
using namespace std;
set<string> se;
void dfs(string