对于一些需要从一堆松散字母中找到字谜的游戏,我最终实施了一种置换算法来找到所有可能的字谜,并在需要时过滤已知字母位置的字谜(-match
顺便说一句,这很棒)。但是对于较长的单词,这被证明非常容易出错,因为浏览大量乱码并不能真正揭示隐藏在其中的正确单词。
所以我想,如果我有一个大的英语单词列表(应该可以在某个地方获得),我可以将我的排列列表与正确的单词列表相交,并(希望)从排列列表中获取所有真实的单词。
由于 PS 中的许多运算符对集合的工作方式不同,我想我可以做类似的事情
$wordlist -contains $permlist
并让路口回来。不幸的是,这并不容易。我想到的其他选项是遍历一个列表并-contains
为每个项目执行一个:
$permlist | ? { $wordlist -contains $_ }
我认为这可能会起作用,但也很慢(尤其是当$wordlist
a 的结果时gc wordlist.txt
)。或者我可以构建一个巨大的正则表达式:
$wordlist -matches (($permlist | %{ "^$_`$" }) -join "|")
但这也可能不会很快。我也许也可以使用findstr
上述巨大的正则表达式,但这感觉是错误的。
有没有我可以使用的内置解决方案,并且比我迄今为止的尝试更好?否则,我可能会将单词列表放入哈希表并使用迭代-contains
方法,这种方法应该足够快。