He encontrado el siguiente código Java. Cuenta todas las permutaciones de una cadena. Sin embargo, no puedo entender qué hace dentro del bucle for del método de permutación. Más específicamente, no puedo entender el propósito de la cadena rem y la llamada recursiva.
¿Hay alguna idea sobre esto?
Gracias.
void permutaion(String str){ permutaion(str,""); } void permutaion(String str, String prefix){ if(str.length() == 0){ System.out.println(prefix); } else{ for(int i=0; i < str.length(); i++){ String rem = str.substring(0,i) + str.substring(i+1); permutaion(rem, prefix + str.charAt(i)); } } }Debe ejecutar este código a mano en papel para ver su magia y comprenderlo :) La función recursiva de permutation es para la cadena de entrada de permutación, y el ciclo for es para todos los casos posibles. El prefix es la permutación de la cadena de entrada cuando finaliza un recursivo.
La idea básica es esta: para obtener las permutaciones de una cadena de caracteres N dada, usted: