問題文 - 2 つの整数が与えられており、これら 2 つの数値が互いのビット ループであるかどうかを確認する必要があります。
JavaScript では、各整数は 0 と 1 を表す 32 ビットの 2 進数です。ここでは、最初の数値の 32 ビット文字列が回転されているかどうかを確認する必要があります。最初の数値を合計 32 回回転させることで、2 番目の数値の 32 ビット文字列を取得できるかどうかを確認できます。
toString() メソッドは、整数を 32 ビットの 2 進数文字列に変換するために使用されます。その後、バイナリ文字列に先頭のゼロを追加して、文字列を 32 ビット長にします。次に、数値のバイナリ文字列をそれ自体と連結し、2 番目の数値のバイナリ文字列が結合された文字列の部分文字列として存在するかどうかを確認します。
###文法###ステップ 1
ステップ 2
ステップ 3
ステップ 4
例 1
このメソッドでは、数値をバイナリ文字列に変換します。その後、for ループを使用して最初の数値のすべての回転を取得し、すべての回転を 2 番目の数値と比較します。最初の数値のいずれかの回転が 2 番目の数値と一致する場合、それらは相互にビット回転します。
###文法###上記の構文では、最初の数値と 2 番目の数値を 1 つずつ比較し、一致する場合に true を返します。
###アルゴリズム###- toString() メソッドを使用して、2 つの数値をバイナリ文字列に変換します。
- ここで、先頭にゼロを追加して長さが等しくなるようにします。
- for ループを使用して最初の文字列を繰り返します。
- num1Binary が num2Binary と一致する場合は true を返します。
- for ループで、最初の数値の現在の回転が 2 番目の数値と一致しない場合は、最初の数値を回転して新しい回転を取得します。
- いずれかの回転が一致するまで、次の回転と 2 番目の回転の一致を続けます。一致しない回転がある場合は false を返します。
李>例 2以下の例では、ビット回転をチェックするために上記のアルゴリズムを実装します。ここでは、最初の数字の各スピンを 1 つずつ取得し、2 番目の数字と比較します。いずれかの回転が一致する場合は true を返します。これはユーザーが出力で確認できます。 リーリー ユーザーは、2 つの数値が互いのビット ループであるかどうかを確認する 2 つの異なる方法を学習しました。最初のメソッドでは、最初の文字列をそれ自体と連結し、2 番目の数値が部分文字列として存在するかどうかを確認します。 2 番目の方法では、for ループを使用して最初の数値のすべてのビット回転を検索し、それらを 2 番目の数値と照合します。
以上が2 つの数値が互いにビット ループであるかどうかをチェックする Javascript プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。