计算将字符串分成至少 1 个元音的 3 个部分的可能性数量

标签 c algorithm dynamic-programming

我在动态规划中遇到了不同版本的“拆分成单词”或“单词分解”问题。我知道“断字”,但无法将其适应以下问题:

您将获得文件中的一段文本(最多 200 个字符),并需要将该单词拆分为 3 个部分,每个部分至少包含 1 个元音。

例如,对于以下文本:bcaeiouxtz,我们可以有 6 种可能性:

bca eio uxtz
bca ei ouxtz
bca e iouxtz
bcae io uxtz
BCAE 我 ouxtz
bcaei 或 uxtz

我想编写动态编程方法,在其中我将能够计算我可以有多少种可能性。

如有任何帮助,我们将不胜感激,谢谢

最佳答案

不需要动态规划。一旦找到元音,第一个单词中的第一个是必需的,第三个单词中的最后一个是必需的。所以你只需要枚举之间的因素,aeiou -> eio,所以在中间你可以有eei eioiioo。两个循环就足够了。

关于计算将字符串分成至少 1 个元音的 3 个部分的可能性数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26967677/

相关文章:

c++ - 使用嵌入式硬件进行测试自动化

algorithm - 在矩阵中排列八个连续的数字,使得没有两个数字相邻

algorithm - 对概率进行编程,让 AI 决定何时在 5 张牌扑克中弃牌

java - 通过暴力破解硬币组合

c - 有多少个由 N 位数字组成的数字,其和为 S? (动态规划)

c++ - 如何保护 MSI 不被修改

c - pthread join 真的暂停调用线程吗

c - fscanf 是否向后移动文件指针?

algorithm - 根据与不同顺序的相同元素的另一个数组的比较对数组进行排序

algorithm - 连接所有岛屿的最低成本是多少?