汉明距离作为两个字符串Java的整数返回

时间:2014-01-21 21:21:59

标签: java string algorithm

为了计算两个弦的汉明距离,它们必须具有相同的长度。 如果这种算法在java中实现,如果字符串长度不同,可以返回什么?

2 个答案:

答案 0 :(得分:5)

如果字符串长度不同,则未定义汉明距离。

在这种情况下,您可能想要的是Levenshtein Distance

答案 1 :(得分:2)

答案在你的问题中:

  

为了计算两个弦的汉明距离,它们必须具有相同的长度

否则 - 你无法计算它(它是未定义的)!

关于您可以返回的内容,这取决于您的需求。您可以随意返回任何内容。如果您不想执行Pairwise alignment之类的操作,我可以为您提供两个简单的指标:

给定两个字符串,长度为x,另一个为长度y:

  1. 将最短字符串与较长字符串的长度x前缀按汉明距离进行比较,然后加上(y-x)。好像你用$或其他特殊字符填充你的短字符串。

  2. 同样,使用特殊字符(例如$)从右侧和左侧的较短字符串的所有可能填充选项中获取最低汉明距离。