求解子序列

简介: 求解子序列

Subsequence

问题

求一个字符串的子序列

思路

对于每个字符都有 选择 和 不选择 ,根据这两个方向进行递归

实现

void GetSubsequence(string str,int k)
{
    if (k == str.size())
    {
        cout << str << endl;
        return;
    }
    func(str, k + 1);/******选择第k个字符******/
    char tmp = str[k];
    str[k] = 0;
    func(str, k + 1);/******不选择第k个字符******/
    str[k] = tmp;
}

总结

提前保存第k个字符,保证不破坏原始字符串,同样也是保证其他递归路线正常执行。

也可以使用STL容器保存字符选择的结果,思路都是一样的。

luck++
+关注
目录
打赏
0
0
0
0
0
分享
相关文章
【动态规划】【子序列除重】【C++算法】1987不同的好子序列数目
【动态规划】【子序列除重】【C++算法】1987不同的好子序列数目
|
11月前
|
动态规划矩阵
动态规划矩阵
90 0
|
11月前
leetcode-553:最优除法
leetcode-553:最优除法
53 0
分治法求解中位数
分治法求解中位数
112 0
【动态规划】最长上升子序列(单调队列、贪心优化)
本篇是对最长上升子序列基础做法的一种优化
93 0