每日一算法:汉明距离
两个等长字符串之间的汉明距离(Hamming distance)是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。
例如:
- 1011101与1001001之间的汉明距离是2。
- 2143896与2233796之间的汉明距离是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 关于汉明距离的题目
版权声明:
作者:zhangchen
链接:https://www.techfm.club/p/44746.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
共有 0 条评论