【问题标题】:How to find number of words in a phrase with spaces removed by checking v. dictionary如何通过检查 v. 字典查找短语中删除空格的单词数
【发布时间】:2014-06-17 07:27:31
【问题描述】:

我有一个单词,例如"ilikesamsung",还有一个单词字典,例如:

{"i","like","the","king","sam","sung","samsung"}

如果我们将其分解为字典单词,我想计算该单词中的空格数。在上面的例子中,字符串被分解成"i like samsung",并且有2个空格。

怎么做?

阐述:

问题有两个部分-

  1. 如果这个单词可以被破坏,则输出 Yes。
  2. 计算空格数

我尝试过的:

我已经通过动态规划解决了第一部分。

第二部分:
我已经扩展了 DP 方法来解决 part2 。我拿了一个数组并存储了单词结束的索引。 arr[]={1,0,0,0,1,0,0,1,0,0,0,1}

这给出了答案 3。
我想要答案 2,因为这个数组应该是 {1,0,0,0,1,0,0,0,0,0,0,1}

有什么建议吗?

【问题讨论】:

  • 可以使用字符串匹配算法。

标签: c++ c algorithm dynamic-programming


【解决方案1】:

您可以使用Dynamic Programming 执行此任务:

f(0) = 0
f(i) = MIN { f(i-j) + (Dictionary.contais(s.substring(i-j,i)?1:INFINITY } for each j=1,...,i

上面找到你的字符串中的字数,所以最终的答案是f(#characters)-1

我们的想法是对给定的新字符进行“详尽搜索” - 尝试将其连接到一个单词,然后递归调用字符串中剩下的内容。

这可以通过 DP 技术非常有效地完成。

【讨论】:

    猜你喜欢
    • 2023-01-11
    • 2015-07-31
    • 2013-11-09
    • 1970-01-01
    • 2015-07-05
    • 1970-01-01
    • 1970-01-01
    • 2015-11-08
    • 1970-01-01
    相关资源
    最近更新 更多