1 /**
2 * 举例:String[] str = {"1","3","3","3","2","3","1"};str1="1",str2="2";返回2
3 * last1最近一次出现str1的位置,last2最近一次出现str2的位置
4 */
5 public static int minDistance(String[] str,String str1,String str2){
6
7 if(str==null||str.length==0||str1==null||str2==null){
8 return 0;
9 }
10
11 if(str1==str2){
12 return 0;
13 }
14
15 int last1 = -1;
16 int last2 = -1;
17 int min = Integer.MAX_VALUE;
18 for(int i=0;i<str.length;i++){
19 if(str[i]==str1){
20 min=Math.min(min, last2 == -1?min:i-last2);
21 last1=i;
22 }
23 if(str[i]==str2){
24 min=Math.min(min, last1 == -1?min:i-last1);
25 last2=i;
26 }
27 }
28 return min==Integer.MAX_VALUE?-1:min;
29 }