在 C/C++ 中打印字符串的所有子字符串,其中元音和辅音数量相等

2024 年 8 月 28 日 | 阅读 2 分钟

在本课程中,我们将探讨如何在 C 和 C++ 中显示字符串中元音和辅音数量相等的子字符串。

给定字符串 S,目标是显示该字符串中元音和辅音数量相等的子字符串。

示例


解决此挑战的基本技术是生成所有子字符串,然后计算每个子字符串中元音和辅音的数量。如果它们相同,则打印它。

时间复杂度将为 O(N^3)。

辅助空间将为 O(1)。

可靠策略:要找到解决方案,请使用以下概念

在此方法中,我们使用两个循环来将每个元音和辅音数量相等的子字符串的开始和结束索引保存在一个向量中。

此方法包括以下步骤

  • 首先,我们遍历一个 for 循环,它显示子字符串的起始位置。
  • 然后探索一个内循环,它在每次迭代时验证当前字符是元音还是辅音。
  • 根据这些 if 条件,我们增加元音或辅音的数量。
  • 如果在任何时候元音和辅音的数量相等,我们则添加当前子字符串的开始和结束索引。
  • 遍历两个循环后,显示向量中所有带有索引的子字符串。

以下是上述方法的代码

C++ 程序

输出

po
poli
police
ol
olic
li
lice
ic
ce

时间复杂度将为 O(N2)。

辅助空间将为 O(N)。


下一个主题C++ 中的累加器