Estás jugando al siguiente juego del tirón con tu amigo: Dada una cadena que contiene solo estos dos caracteres: + y -, tú y tu amigo se turnan para convertir dos «++» consecutivos en «-«. El juego termina cuando una persona ya no puede hacer un movimiento y, por lo tanto, la otra persona será la ganadora.
Escribe una función para calcular todos los estados posibles de la cadena después de un movimiento válido.
Solución Java
public List<String> generatePossibleNextMoves(String s) { List<String> result = new ArrayList<String>(); if(s==null) return result; char[] arr = s.toCharArray(); for(int i=0; i<arr.length-1; i++){ if(arr[i]==arr[i+1] && arr[i]=='+'){ arr[i]='-'; arr[i+1]='-'; result.add(new String(arr)); arr[i]='+'; arr[i+1]='+'; } } return result; } |