ルーズ文字の束からアナグラムを見つける必要のあるゲームでは、置換アルゴリズムを実装して、すべてのアナグラムを見つけ出し、既知の文字位置(-match
が大丈夫です)に必要なフィルタをフィルタリングしました。しかし、より長い言葉では、これは非常に間違っている傾向があることを証明しました。大量の不気味なリストを隠すことは、その中に隠された適切な言葉を実際には明らかにしません。 Powershell、セット交差点が内蔵されていますか?
コレクションとは異なるPSの仕事の多くの事業者が、私はちょうど
$wordlist -contains $permlist
ような何かをして戻って交差点を得ることができると思ったので。残念ながらそれは簡単ではありません。私が考えている他のオプションは、1つのリストを反復することで、各項目について-contains
をするでしょう:
$permlist | ? { $wordlist -contains $_ }
これはおそらく仕事だろうが、私は考えても非常に遅い($wordlist
がgc wordlist.txt
の結果である場合は特に)。または、私は巨大な正規表現を構築することができます:
$wordlist -matches (($permlist | %{ "^$_`$" }) -join "|")
しかし、それはおそらく非常に高速でもないでしょう。私はおそらくfindstr
上記の巨大な正規表現を使用することもできますが、それは間違って感じる。
私が使用できる組み込みソリューションはありますか?これまでの試みより優れていますか?それ以外の場合は、おそらく単語リストをハッシュテーブルに入れて、反復的な-contains
のアプローチを使用してください。
これは私のアプローチについてのことでした。確かにきれいではありません。 (そして、明らかに、cmdline自体からのラップされていない使用には適していません)。 – Joey