Dada una lista de palabras y dos palabras word1 y word2, devuelva la distancia más corta entre estas dos palabras en la lista.
Por ejemplo,
Suponga que palabras = [«practice», «makes», «perfect», «coding», «makes»].
Dado palabra1 = «codificación», palabra2 = «práctica», devuelve 3.
Dado palabra1 = «hace», palabra2 = «codificación», devuelve 1.
Solución Java
public int shortestDistance(String[] words, String word1, String word2) { int m=-1; int n=-1; int min = Integer.MAX_VALUE; for(int i=0; i<words.length; i++){ String s = words[i]; if(word1.equals(s)){ m = i; if(n!=-1) min = Math.min(min, m-n); }else if(word2.equals(s)){ n = i; if(m!=-1) min = Math.min(min, n-m); } } return min; } |