2014-01-21 33 views
1

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

+0

你能详细说一下吗?没有一点点背景知识,很难说出你要问什么。 –

+1

不同长度的两个字符串的汉明距离是不确定的。 –

+1

由于海明距离是一个度量标准,因此也是非负的,如果您想仅仅指示失败的参数而不使用异常,则可以返回-1并正确处理。这取决于你的需求。 – Jems

回答

2

答案就在你的问题:

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

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

关于你可以退货,这取决于你的需求。你可以回报你想要的任何东西。如果你不想做的事情一样Pairwise alignment,我可以为您提供了两个简单的指标:

给定两个字符串,长度x的缩短和其他长度的Y:

  1. 比较最短的字符串用汉明距离作为长字符串的长度x的前缀,并加上(yx)。就好像你用$或其他特殊字符填充了较短的字符串。

  2. 类似地,从特定字符(例如$)的右侧和左侧的较短字符串的所有可能的填充选项中取最低的汉明距离。

5

如果字符串长度不同,那么汉明距离没有被定义。

你在这种情况下可能需要的是Levenshtein Distance

+0

那么解决方法是返回Levenshtein距离,如果它不能通过卷边距离使用? –

+0

@StefanSprenger取决于你的需求。但是请注意,Levenshtein距离对于相同长度的每两个弦不等于汉明距离。 –

+0

@GariBN如果我有一个“HemmingMethod”,那么可能会返回什么 –

相关问题