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 }