【问题标题】:Best approach to get number of zeros in binary String获取二进制字符串中零个数的最佳方法
【发布时间】:2018-05-06 14:56:04
【问题描述】:

我有一个二进制字符串,必须计算该字符串中零的数量

我知道我们可以用线性时间解决它,但我想用 o(k) 解决它

其中 k 是字符串中零的数量。

N 为字符串 1 的长度

【问题讨论】:

  • o(k) 是指 O(1) -- 常数复杂度还是 O(n) -- 线性复杂度?
  • k 表示字符串中零的个数
  • @arash 他们给出的解决方案适用于可以用二进制表示的数字,但在我的情况下,二进制字符串长度较大,因此我们不能用十进制格式表示它
  • 您可以一次取 32/64 位并将它们转换为整数,然后按照该过程进行操作。

标签: algorithm binary


【解决方案1】:

给定一串N 独立位,您必须至少查看每个位一次。这给出了 O(N) 的时间复杂度。没有办法渐近地更快地做到这一点。

上述问题中给出的算法假设整个位串适合一个单词并且可以在 O(1) 中处理。如果字符串可以任意长,则不成立。

【讨论】:

    【解决方案2】:

    您可以使用Hamming weight 算法,实际上计算字符串的汉明距离,然后根据二进制字符串的大小 (N) 计算 subtract

    【讨论】:

      猜你喜欢
      • 2023-03-06
      • 1970-01-01
      • 2012-11-25
      • 2011-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-07
      • 1970-01-01
      相关资源
      最近更新 更多