Javaで言葉遊びのスクランブルゲームを開発しています。
プレイヤー 1 が"B,A,C,N,R,E" のような文字を送信した場合、プレイヤー 1 は同じ文字セットを送信してはなりません (順序は関係ありません) 例: "A,B,C,N,R,E", 「B,A,N,C,E,R」など
文字のシーケンスに固有ではない文字列で特定の文字セットを見つける方法はありますか?
player1 に対応して、彼が送信したシーケンスを並べ替えて保存できます。次にシーケンスを選択するときは、並べ替えてマップでチェックします
1) 前に言われたように文字を並べ替えます。複雑さ O(n log n)。
2) アルファベットのシンボルの序数がマスク配列のインデックスになるカウンターを使用して、ある種の配列を実装する。そして、このマスク配列を使用して単語を一致させます。そのように Integer[] maskArray = [0(A の場合)、0(B の場合)、0(C の場合)、など] 複雑さ O(n)。