动态编程问题(输入不一致?)

时间:2019-07-12 06:00:06

标签: algorithm dynamic-programming

我试图解决LeetCode中的word break问题,但我不明白为什么以下输入没有以相同的方式进行评估-从我的角度来看,没有一个是真的另一个错误。有人可以向我解释吗?

为什么此输入为假?

"catsandog" ["cats","dog","sand","and","cat"]

这是真的

"cars" ["car","ca","rs"]

1 个答案:

答案 0 :(得分:2)

因为“汽车”可以分为给定词典[“汽车”,“ ca”,“ rs”]中存在的“ ca”和“ rs”。

另一方面,不能将“ catsandog”分解为单词,以使所有单词都存在于[“ cats”,“ dog”,“ sand”,“ and”,“ cat”]中。

例如,
我们可以通过以下方式破坏“ catsandog”:

  

“ catsandog” =“ cat” +“ sand” +“ og”,
   “ catsandog” =“ cats” +“和” +“ og”,

但是“ og”在给定的词典[[cats],“ dog”,“ sand”,“ and”,“ cat”]中不存在。

因此在此问题中,如果您可以将给定单词分解为某些单词,以使所有单词都存在于给定字典中,那么您将返回true。

但是,如果给定的词典中不存在断字中的至少一个字,则您将返回false。