各文字は.
またはそのインデックスであるため、少しでもそれを表すことができます。
"0b" + "1.345.7".replace(/./g, c=>c==='.'?0:1); // "0b1011101"
"0b" + "123..6.".replace(/./g, c=>c==='.'?0:1); // "0b1110010"
次に、あなたはビット演算子のAND &
を使用することができます。
"0b1011101"
& "0b1110010";
// 0b1010000
は最後に、あなただけ戻って文字列に変換し、1
の数をカウントする必要があります。
0b1010000.toString(2).split('1').length-1; // 2
おそらく私はこれのようにはしませんが、楽しみのためだけです:)
実際には、より少ないメモリを無駄にし、あなたは数字の代わりに文字列
0b1011101; // 93 - only needs 64 bits!
0b1110010; // 114 - only needs 64 bits!
としてデータを保存でき、
0b1011101 >> 6 & 1; // 1 - 1st bit
0b1011101 >> 5 & 1; // 0 - 2nd bit
0b1011101 >> 4 & 1; // 1 - 3rd bit
0b1011101 >> 3 & 1; // 1 - 4th bit
0b1011101 >> 2 & 1; // 1 - 5th bit
0b1011101 >> 1 & 1; // 0 - 6th bit
0b1011101 >> 0 & 1; // 1 - 7th bit
それはあなたが –
Iドンをタグ付けしている言語であると私はjavascriptの、おそらく、いくつかのコードを使用します: –
これをより小さな管理可能なステップに分割します。1.文字列を日数の配列に分割します。2.両方の配列で共通の数字を探します。あなたが立ち往生するたびに、タスクを小さなものに分解します。あなたはそれを次々と管理し、解決することができます。 – zerkms