在这个任务中,我需要获得两个字符串序列 1 和序列 2 之间的汉明距离(两个相等长度的字符串之间的汉明距离是对应符号不同的位置数 - 来自维基百科)。
首先,我制作了 2 个新字符串,这是 2 个原始字符串,但都使用小写,以便比较容易。然后我求助于使用 for 循环和 if 来比较两个字符串。对于这 2 对字符串中字符的任何差异,循环会将 1 添加到 int x = 0。方法的返回将是此 x 的值。
public static int getHammingDistance(String sequence1, String sequence2) {
int a = 0;
String sequenceX = sequence1.toLowerCase();
String sequenceY = sequence2.toLowerCase();
for (int x = 0; x < sequenceX.length(); x++) {
for (int y = 0; y < sequenceY.length(); y++) {
if (sequenceX.charAt(x) == sequenceY.charAt(y)) {
a += 0;
} else if (sequenceX.charAt(x) != sequenceY.charAt(y)) {
a += 1;
}
}
}
return a;
}
那么代码看起来足够好并且功能足够吗?我可以修复或优化代码吗?提前致谢。我是个大菜鸟,如果我问了什么愚蠢的问题,请原谅我