每日一算法:汉明距离

作者: lio_zero | 来源:发表于2021-04-17 18:20 被阅读0次

    两个等长字符串之间的汉明距离(Hamming distance)是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。

    例如:

    • 10111011001001之间的汉明距离是2。

    • 21438962233796之间的汉明距离是3。

    • "toned"与"roses"之间的汉明距离是3。

    JavaScript 实现

    计算两个值之间的汉明距离。

    • 使用 XOR 运算符(^)查找两个数字之间的位差。

    • 使用转换为二进制字符串 Number.prototype.toString(2)

    • 使用计数并返回 1 字符串中的s数 String.prototype.match(/1/g)

    const hammingDistance = (num1, num2) =>
      ((num1 ^ num2).toString(2).match(/1/g) || '').length
    
    hammingDistance(2, 3) // 1
    

    此示例来自 30 seconds of code 的 hammingDistance

    Leetcode 关于汉明距离的题目

    相关文章

      网友评论

        本文标题:每日一算法:汉明距离

        本文链接:https://www.haomeiwen.com/subject/fjhplltx.html