【举例】
strs=[“1”,”3”,”3”,”2”,”3”,”1”] “1”“2” 返回2
strs=[“CD”] “AB” “CD” 返回-1
【代码】
//字符串数组中两个字符串的最小距离
public static int minDistance(String[] strs,String str1,String str2){
if(str1==null||str2==null){
return -1;
}
if(str1.equals(str2)){
return 0;
}
int last1=-1;//最近一次str1的位置
int last2=-1;//最近一次str2的位置
int min=Integer.MAX_VALUE;
for(int i=0;i<strs.length;i++){
if(strs[i].equals(str1)){//找到了str1,如果找到了last2,则i-last2就是当前str1和左边最近str2的距离
min=Math.min(min, last2==-1?min:i-last2);//每次都要比较Min
last1=i;
}
if(strs[i].equals(str2)){//找到了str2,如果找到了last1,则i-last1就是当前str2和左边最近str1的距离
min=Math.min(min, last1==-1?min:i-last1);
}
}
return min==Integer.MAX_VALUE?-1:min;
}
本文介绍了一种算法,用于计算给定字符串数组中两个特定字符串之间的最小距离。通过迭代数组并跟踪最近找到的每个字符串的位置来实现,适用于字符串查找和距离计算等场景。
3223

被折叠的 条评论
为什么被折叠?



