求解子序列

简介: 求解子序列

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容器保存字符选择的结果,思路都是一样的。

目录
相关文章
|
7月前
|
算法 C++
【动态规划】【子序列除重】【C++算法】1987不同的好子序列数目
【动态规划】【子序列除重】【C++算法】1987不同的好子序列数目
|
7月前
|
机器学习/深度学习 算法 测试技术
【动态规划】C++算法:446等差数列划分 II - 子序列
【动态规划】C++算法:446等差数列划分 II - 子序列
|
7月前
|
人工智能 算法 测试技术
【动态规划】【字符串】【C++算法】940. 不同的子序列 II
【动态规划】【字符串】【C++算法】940. 不同的子序列 II
|
算法 测试技术
【学会动态规划】最长湍流子数组(23)
【学会动态规划】最长湍流子数组(23)
50 0
迭代法解决递推问题:数列和,sinx,ex的近似值
迭代法解决递推问题:数列和,sinx,ex的近似值
127 0
|
算法 C++
【动态规划篇】最少分割回文 && 编辑距离 && 不同的子序列
【动态规划篇】最少分割回文 && 编辑距离 && 不同的子序列
【动态规划篇】最少分割回文 && 编辑距离 && 不同的子序列
|
机器学习/深度学习 算法
斐波拉契数列的递推递归求解算法
斐波拉契数列的递推递归求解算法
119 0
|
人工智能 算法
排序不等式(贪心)
复习acwing算法基础课的内容,本篇为讲解基础算法:贪心——排序不等式,关于时间复杂度:目前博主不太会计算,先鸽了,日后一定补上。
111 0
排序不等式(贪心)
|
机器学习/深度学习 算法
两个序列的中位数(双指针)
两个序列的中位数(双指针)
212 0