在不到n次的时间内在一个位串中找到两个连续的1?

时间:2010-11-04 12:04:57

标签: algorithm bits bitstring

我试图找出一种方法来查看位串是否在n字符串大小为n的时间内连续2次。

例如,假设我们的字符串大小为5(索引0-4)。如果索引1和3都是0,我可以返回false。但如果它们都是那些,那么我可能需要做5次才能找到答案。

bitstring不必是长度5.为简单起见,假设它可以在3到8之间。

1 个答案:

答案 0 :(得分:15)

最简单的解决方案可能是按位AND原始字符串,其自身版本已向左或向右移位1位。如果结果位字符串非零,那么您在其中至少有一个11

test = (src & (src << 1));