【发布时间】:2020-07-14 01:47:46
【问题描述】:
我对制作自己的算法还很陌生,但我在尝试为我正在创建的游戏创建一个算法时遇到了困难。新机制正在寻找玩家可以在这个单词争夺游戏中输入的隐藏单词。
问题
假设我有一个包含 { h, o, t, e, l, b, o, w } 的字符数组。我需要能够像这样在哪里获得数组的组合:
- 每个单词至少包含 3 个字母
- 必须使用所有字母,否则序列无效。
- 没有重叠
所需序列:
- 热,弯头
- 热,低头
- 酒店,弓
- hotelbow
我的想法是我可以使用我的数据库检查每个序列中的有效单词,并且在示例中序列 1 和 3 是有效的。
这是一个简单的例子,如果数组小于或等于 5 个字符,也可以只有 1 个序列,如果数组有 9 个字符,则可以有 3 个有效的密码。
添加另一个示例,其中字符数组包含 { s, i, x, c, a, t, r, o, w }:
所需顺序:
- 六、猫、行
- 六、猫头鹰
- 六,阿罗
- sixca, 特罗
- 六猫,行
- 六只猫
在这个例子中,只有序列 1 在检查后是有效的,但它能够找出 3 个隐藏的单词来奖励玩家。
【问题讨论】:
-
我猜你的意思是 seq 1 & 3 是有效的(不是 1 & 2)。我对其进行了编辑,但如果您真的是指 1 和 2,请随时恢复(并解释原因,因为这对我来说没有意义)。字母的顺序必须相同吗?那么
{hob, towel}无效? -
啊,错了,是的,您对编辑的看法是正确的。我很欣赏编辑。是的,字母的顺序必须相同,因此 {hob, towel} 无效。
-
同一个数组可以容纳2个以上的单词吗?
-
是的,可以辨认出两个以上的单词。