首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >长度相等的两根弦之间的汉明距离

长度相等的两根弦之间的汉明距离
EN

Stack Overflow用户
提问于 2017-01-04 13:22:58
回答 3查看 8.8K关注 0票数 1

我需要在两个长度相等的字符串之间应用汉明距离。我使用下面的代码

代码语言:javascript
复制
private int HD(String d1, String d2){

    return (d1.equals(d2)) ? 0 : 1;
} 

那么代码的编写方式是正确的吗?

EN

回答 3

Stack Overflow用户

发布于 2017-01-04 13:29:42

Hamming Distance计算两个字符串之间的距离,但它们的长度必须相等。

它测量两个字符串相等的最小替换次数。

代码语言:javascript
复制
    private int HammingDistance(String One, String Two)
    {
       if (One.length() != Two.length())
        return -1;

       int counter = 0;

       for (int i = 0; i < One.length(); i++)
       {
           if (One.charAt(i) != Two.charAt(i)) counter++;
       }

       return counter;
    }

您所做的只是比较两个字符串的长度,这是不必要的。

票数 5
EN

Stack Overflow用户

发布于 2017-01-04 13:33:14

两个长度相等的字符串之间的汉明距离是相应符号不同的位置数。换句话说,它是将一个字符串更改为另一个字符串所需的最小替换次数。例如,"cat“和"mat”之间的汉明距离是1。

您的代码似乎只是检查两个字符串的长度是否相等。下面的汉明距离代码源码可能会对你有所帮助。

https://commons.apache.org/sandbox/commons-text/jacoco/org.apache.commons.text.similarity/HammingDistance.java.html

票数 0
EN

Stack Overflow用户

发布于 2017-01-04 15:51:37

你的代码只是检查2个字符串是否相等,如果相等,则返回0,否则返回1。它不会显示汉明距离。

什么是汉明距离?

汉明距离只是比较字符串的相同索引处字母表中差异的数量,因此它告诉您必须替换的数量,才能使2个字符串相等。

示例:

假设我有两个长度相等的字符串"ABCD“和"ACCC”。在本例中,两个字符串中的第一个和倒数第二个字符相同,因此您需要在第二个字符串中替换2个字符以使其相同。因此,在本例中,hamming distance为2。

a、b、c、d

C C C

.

0 1 0 1

所以总的汉明距离是1+1= 2。

海明距离程序:

代码语言:javascript
复制
private  int getHD(String d1, String d2) {
int distance = 0;
if (d1 == null || d2 == null) {
  System.out.println("Either String is null");
  System.exit(0); // or throw a RuntimeException here
}

d1 = d1.toUpperCase();
d2 = d2.toUpperCase();

if (d1.length() != d2.length()) {
  System.out.println("The string are not equal in length.");
  System.exit(0); //or throw a RuntimeException here
}

for (int i = 0; i < d1.length(); i++) {
  if (d1.charAt(i) != d2.charAt(i))
    distance++;
}

return distance;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41456717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档