我有一个二进制字符串,必须计算该字符串中的零数
我知道我们可以用线性时间解决它,但我想用o(k)
求解其中k是字符串中的零个数。
N是字符串1的长度< = N< 10 ^ 6
答案 0 :(得分:4)
给定一串N
个独立位,您必须至少查看一次每个位。这给出了O(N)的时间复杂度。没有办法渐进地加快速度。
上述问题中给出的算法假定整个位串符合一个字,可以在O(1)中处理。如果字符串可以任意长,则不成立。
答案 1 :(得分:1)
您可以使用Hamming weight算法,实际计算字符串的汉明距离,然后根据二进制字符串(N)的大小subtract