¿Generando un superset completo?
Dado el string de entrada NEIDESL
, necesito generar un superset de cada combinación de letras que este string contiene. He probado varias respuestas de StackOverflow.
Sin embargo, al ejecutarlo con mi string de entrada, ninguno de los resultados contiene la palabra DIESEL
, lo que me hace pensar que no son superset completos.
Estoy usando el siguiente fragmento de código, encontrado aquí:
function strcombinations(str) {
var fn = function(active, rest, a) {
if (!active && !rest)
return;
if (!rest) {
a.push(active);
} else {
fn(active + rest[0], rest.slice(1), a);
fn(active, rest.slice(1), a);
}
return a;
}
return fn("", str, []);
}
Puede que esté entendiendo mal lo que es un superset, cualquier ayuda es apreciada 🙂
Saludos
davy.ai
Solución para la generación de superset
Un superset es un conjunto que contiene todos los elementos de otro conjunto, junto con elementos adicionales. En la cadena de entrada dada
NEIDESL
, la palabraDIESEL
no está presente, por lo que no se puede esperar que forme parte del superset generado.En cuanto al fragmento de código que proporcionaste, genera todas las combinaciones posibles de la cadena de entrada. Sin embargo, no garantiza generar un superset que contenga todos los elementos de la cadena de entrada y elementos adicionales. Para obtener un superset, puedes agregar los elementos faltantes manualmente iterando a través de las combinaciones generadas y agregando los elementos faltantes.
Aquí tienes una versión actualizada del fragmento de código que genera un superset:
Puedes llamar a la función
generateSuperset
con la cadena de entrada:Esto mostrará el siguiente superset: