我有一个单词,例如"ilikesamsung"
和一个单词词典,例如:
{"i","like","the","king","sam","sung","samsung"}
如果我们将它分成字典单词,我想计算这个单词中的空格数。在上面的示例中,字符串分为"i like samsung"
,并且有2个空格。
怎么做?
精化:
问题有2个部分 -
我尝试了什么:
我通过动态编程解决了第一部分。
第二部分:
我已经扩展了DP方法来解决第2部分。我拿了一个数组,然后我存储了哪个单词结束的索引。 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}
。
有任何建议吗?
答案 0 :(得分: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技术非常有效地完成。