我想找出一种方法来查看位串是否在小于 n 的时间内有 2 个连续的位串大小 n。
例如,假设我们的位串大小为 5(索引 0-4)。如果索引 1 和 3 都是 0,我可以返回 false。但如果他们都是,那么我可能需要看 5 次才能找到我的答案。
位串的长度不必为 5。为简单起见,假设它可以在 3 到 8 之间。
最佳答案
最简单的解决方案可能是按位 AND
原始字符串,其自身版本已向左或向右移动 1 位。如果生成的位字符串非零,那么你至少有一个 11
在那里:
test = (src & (src << 1));
关于algorithm - 在不到 n 的时间内在位串中找到两个连续的 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4096440/