子序列是从另一个字符串中删除某些字符(可能没有或全部)后得到的字符串,这些字符可能不是连续的。给定一个字符串,我们必须找到大于等于给定字符串 Y 且小于等于另一个给定字符串 Z 的子序列的数量。我们将使用动态规划来解决这个问题,因为暴力方法将花费指数时间。暴力方法暴力方法是找到给定字符串 X 的所有子序列,然后检查它们是否... 阅读更多
子串是从给定字符串中删除开头和结尾某些字符(可能全部或没有)后得到的连续字符序列。给定一个二进制字符串,我们必须找到包含最多 X 个零和 Y 个一的子串的最长长度,其中 X 和 Y 是给定的输入。示例输入字符串 str = "101011"; int x = 1; int y = 2; 输出包含最多 X 个零和...的最长子串的长度 阅读更多
给定两个字符串 string A 和 string B 以及一个数组,该数组表示删除给定字符串 A 的第 i 个字符的成本。我们需要以最小成本删除字符串 A 的某些字符(可能为零或没有),以使 A 的任何子序列都不表示字符串 B。我们将看到三种实现代码的方法:递归方法;递归和备忘录方法;以及制表法或迭代 dp。示例让我们来看以下示例——输入字符串 a = "xanxd" 字符串 b = ... 阅读更多