问题描述
|
由于主题区域(写在墙上)添加了有趣的条件-字母无法更改其顺序,因此这不是关于字谜的问题。
我看到一个长字,用油漆写在墙上,现在突然
我希望通过画出字母的任意组合可以从该单词中得到所有可能的单词和短语。可以,用空格随机分隔。
为了扩大可能的结果,让我们假设,空格不需要分隔单词。
编辑:显然应该保持字母顺序(感谢idz指出这一点)。同样,短语可能毫无意义。这里有些例子:
Source word: disestablishment
paint out: ^ ^^^ ^^^^ ^^
left: i tabl e -> i table
or paint out:^^^^^^^^^ ^ ^^
left: ish e -> i she (spacelessness is ok)
视觉例子
困难模式/奖励任务:考虑可能对字母进行细微改动(D <-> B,C <-> O等)
请提出您解决此问题的方法。
这是我一般简单的方法
显然,我们需要英语词典来查找单词。
我们的目标是让单词在字典中进行搜索。
我们需要找到所有可能的字母变体,以使其与字典匹配:每个字母可以是本身(1)或涂成油漆(0)。
考虑到“不需要用空格来分隔单词”的情况,为了区分单词,我们必须假设任意两个字母之间都可能有空格(1-有空格,0-没有空格) 。
d i s e s t a b l i s h m e n t
^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ - possible whitespace
N
=源词中的字母数
N-1
=可能的空格数
任何“ 4”元素都可以处于两种状态,因此让我们将它们视为布尔值。可能的变化数量为2^(N + N - 1)
。是的,它包括无用的变体,例如在空格之间粘贴空格,但是我没有提出更优雅的公式。
现在我们需要一个算法来获取布尔值的N+N-1
序列的所有可能的变体(我还没有想到,但是单词递归贯穿我的脑海)。然后用对应的字母(如果布尔值的索引为奇数)或空格(偶数)替换所有1。
和0,带空格(奇数)或无(偶数)。然后修剪开头和结尾的空格,分离单词并在字典中搜索它们。
我不喜欢这种怪异的方法,希望您能帮助我找到好的选择。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)