4

ビット文字列にビット文字列サイズ n の 2 つの連続するビット文字列が n 回未満であるかどうかを確認する方法を見つけようとしています。

たとえば、ビット文字列のサイズが 5 (インデックス 0 ~ 4) であるとします。インデックス 1 と 3 が両方とも 0 の場合、false を返すことができます。しかし、それらが両方とも1つである場合、答えを見つけるために5つのピークを実行する必要がある場合があります.

ビット文字列の長さは 5 である必要はありません。簡単にするために、3 から 8 の間でよいとしましょう。

4

1 に答える 1

15

最も簡単な解決策は、元の文字列をビットごとANDに、それ自体のバージョンを左または右に 1 ビットシフトすることです。結果のビット文字列がゼロ以外の場合、少なくとも 1 つ含ま11れています。

test = (src & (src << 1));
于 2010-11-04T12:13:07.263 に答える