【发布时间】:2017-01-17 19:42:53
【问题描述】:
如果我有一个字符串“blueberrymuffinsareinsanelydelicious”,那么解析它的最有效方法是什么,这样我就剩下 [“blueberry”,“muffins”,“are”,“insanely”,“delicious”]?
我已经有了我的单词表(mac 的 /usr/share/dict/words),但是我如何确保完整的单词存储在我的数组中,又名:blueberry,而不是两个单独的单词,blue 和 berry。
【问题讨论】:
-
您可以阅读您的单词列表,然后在搜索字符串之前按 word size 以 reverse order 对其进行排序。在这种情况下,如果您的单词列表是
['blue','berry','blueberry'],它会变成['blueberry','berry','blue'],您的搜索将首先查找复合词。 -
这听起来像XY Problem。你是怎么得到这份清单的?
-
为什么解析
blueberry而不是blue和berry更好?这也不是一个有效的解决方案吗? -
我对这个问题投了反对票,因为不清楚需要什么,我认为任何数量的编辑都无济于事。这本质上是一个无法回答的问题。例如,应该如何拆分字符串
"carrotate"?["carrot", "ate"]?["car", "rotate"]?["car", "rot", "ate"]?。人们可以很容易地制作出具有数千种可能组合的更长的字符串。像这样的问题是在浪费每个人的时间,包括提问者的。 -
如果字符串被分解成字典中的单词后,字符串中没有任何内容,我很确定这个问题是 NP 完全的。
标签: ruby string algorithm parsing