Escribe una función que tome una cadena como entrada e invierta solo las vocales de una cadena.
Solución Java
este es un problema simple que puede resolverse usando dos punteros que escanean desde el principio y el final de la matriz.
public String reverseVowels(String s) { ArrayList<Character> vowList = new ArrayList<Character>(); vowList.add('a'); vowList.add('e'); vowList.add('i'); vowList.add('o'); vowList.add('u'); vowList.add('A'); vowList.add('E'); vowList.add('I'); vowList.add('O'); vowList.add('U'); char[] arr = s.toCharArray(); int i=0; int j=s.length()-1; while(i<j){ if(!vowList.contains(arr[i])){ i++; continue; } if(!vowList.contains(arr[j])){ j--; continue; } char t = arr[i]; arr[i]=arr[j]; arr[j]=t; i++; j--; } return new String(arr); } |