计算数组中元素的距离 * 给定一个字符串数组strs,在给定2个字符串str1和str2,返回在strs中str1与str2的最小距离,如果str1或str2为null,或不在strs中,返回-1 * 例如: * 【数组】{"abc","cde","bcd","ac","bcd","ac"} * 【两个字符串】“abc","ac" * 【输出】最小距离为:3
时间: 2023-08-14 18:09:04 浏览: 136
nearby:查找数组中位于给定距离阈值内的元素
你可以使用以下的Java程序来计算字符串数组中两个字符串的最小距离:
```java
import java.util.Arrays;
import java.util.List;
public class StringDistanceCalculator {
public static void main(String[] args) {
String[] strs = {"abc", "cde", "bcd", "ac", "bcd", "ac"};
String str1 = "abc";
String str2 = "ac";
int minDistance = calculateMinDistance(strs, str1, str2);
System.out.println("最小距离为:" + minDistance);
}
private static int calculateMinDistance(String[] strs, String str1, String str2) {
if (strs == null || strs.length == 0 || str1 == null || str2 == null) {
return -1;
}
int minDistance = Integer.MAX_VALUE;
int str1Index = -1;
int str2Index = -1;
for (int i = 0; i < strs.length; i++) {
if (strs[i].equals(str1)) {
str1Index = i;
} else if (strs[i].equals(str2)) {
str2Index = i;
}
if (str1Index != -1 && str2Index != -1) {
minDistance = Math.min(minDistance, Math.abs(str1Index - str2Index));
}
}
return minDistance == Integer.MAX_VALUE ? -1 : minDistance;
}
}
```
这个程序会遍历字符串数组,找到给定的两个字符串的索引,并计算它们之间的最小距离。如果数组或字符串为null,或者给定的字符串不在数组中,将返回-1。通过循环遍历数组,记录两个字符串的索引,并在每次找到两个字符串的索引时更新最小距离。最后,返回计算得到的最小距离。
希望这个程序能满足你的需求!如果你还有其他问题,请随时提问。
阅读全文