在这个问题中,我们需要检查给定的句子是否为首字母重复句。如果所有单词都以相同的字符开头,我们可以说任何句子都是首字母重复句。我们将学习两种解决问题的方法。解决问题的逻辑是检查所有单词的首字符。如果任何单词的首字符不匹配,我们可以说该句子不是首字母重复句。问题陈述——我们有一个包含 N 个字符的字符串。我们需要检查给定的字符串是否为首字母重复句。注意——首字母重复句包含所有以相同字符开头的单词…… 阅读更多
我们得到一个长度为 S 的字符串,以及另一个表示字符串长度的数字 n,这些字符串可能包含 S 作为子序列。我们必须找到包含 S 作为子序列的长度为 N 的唯一字符串的数量,其中子序列是从给定字符串中获得的一组字符,这些字符可能是所有字符或不是所有字符,并且它们不需要是连续的。示例 输入字符串 str = "xyz" int n = 3 输出 1 解释 只有一个长度为 3 的字符串包含…… 阅读更多
子序列是从另一个字符串中删除一些(可能没有或全部)字符后可以得到的字符串,这些字符可能不是连续的。我们得到一个字符串,并且必须找到大于等于给定字符串 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。我们将看到实现代码的三种方法:递归方法;递归和备忘录方法;以及表格化或迭代式动态规划。示例让我们来看下面的例子——输入字符串 a = "xanxd" 字符串 b = ... 阅读更多