【问题标题】:Count number of possibilities to split a string into 3 parts with at least 1 vowel [closed]计算将字符串分成至少 1 个元音的 3 部分的可能性[关闭]
【发布时间】:2014-11-17 07:37:00
【问题描述】:

我在动态编程中有不同版本的“拆分成单词”或“分词”问题。我知道“Word Break”,但无法适应以下问题:

您从一个文件中获得一个文本(最多 200 个字符),并要求您将这个词分成 3 个部分,每个部分至少包含 1 个元音。

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

bca eio uxtz
bca ei ouxtz
bca e iouxtz
bcae io uxtz
bcae i ouxtz
bcaei o uxtz

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

任何帮助将不胜感激,谢谢

【问题讨论】:

  • I would like to write dynamic programming approach 问题是什么?
  • 听起来是个很棒的项目。 继续写,当您遇到具体问题时回来,我们很乐意提供帮助。
  • 我想使用一个二维数组,其中行值为字符,列值为 1、2 和 3。在每一行中,当我们看到元音时,我们将值增加为 [ i][j] = a[i-1][j]+a[i][j] 假设添加的可能性数量。但是这个解决方案并不总是给出正确的输出。
  • 你想产生所有可能的分割,还是只计算它们?如果您只需要计算它们,则有一个线性时间解决方案,具有恒定的存储要求。
  • 我只需要数,不需要全部显示

标签: c algorithm dynamic-programming


【解决方案1】:

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

【讨论】:

  • 谢谢,比起动态规划,似乎很简单
猜你喜欢
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多