【发布时间】:2017-03-17 18:48:11
【问题描述】:
在这个问题中,我们必须将字符串拆分为有意义的单词。我们得到了一本字典来查看这个词是否存在。
我在How to split a string into words. Ex: "stringintowords" -> "String Into Words"? 看到了其他一些方法。
我想到了一种不同的方法,想知道它是否可行。
例子-它看起来像句子
算法
字符串的每个字母对应一个 DAG 中的一个节点。
将 bool 数组初始化为 False。
在每个节点我们都有一个选择——如果将当前字母添加到前一个子数组仍然产生一个有效的单词,然后添加它,如果没有,那么我们将从该字母开始一个新单词并设置 bool[previous_node ]=True 表示一个单词在那里结束。在上面的示例中,bool[1] 将被设置为 true。
这类似于最大子数组和问题。
这个算法行得通吗?
【问题讨论】:
-
子串还是子序列?
标签: string algorithm split dynamic-programming