¿Es Permutación?
Descripción
Implemente un algoritmo que reciba dos cadenas de texto. El algoritmo debe devolver True en el caso de que una cadena de texto es permutación de la otra, en el caso contrario debe devolver False.
Resultados esperados
> IsPermutation("god", "dog");
true
> IsPermutation("abc", "cba");
true
> IsPermutation("abc", "cbaa");
false
> IsPermutation("god", "good");
false
Solución
Análisis
Puntos a aclarar
Antes de comenzar a buscar una solución es importante revisar en el enunciado o con el entrevistador lo siguiente:
- ¿La permutación distinguirá entre mayúsculas y minúsculas?
- ¿Los espacios en blanco serán tomados en cuenta?
Longitud de las cadenas de texto
Una primera condición que puedes realizar en este ejercicio es verificar que ambas cadenas de texto tengan la misma longitud. Si no tienen la misma longitud se sabe inmediatamente que no son permutación.
¿Puedes ordenar los caracteres?
La posibilidad de ordenar los caracteres, te permitirá implementar fácilmente una solución.
Si ordenas ambas cadenas de texto lo único que tendrás que hacer luego es validar que las cadenas de texto sean iguales. Si son iguales entonces una cadena si es permutación de otra, si no son iguales entonces no son permutación.
Solución sin realizar ordenamientos
Validar una permutación se resume en lo siguiente:
La cantidad de veces que se repite cada letra en una cadena de texto debe ser igual que en la otra cadena de texto. Si esto se cumple es una permutación, en caso contrario no lo es.
Si no puedes realizar ordenamientos, tendrás la obligación de recorrer los caracteres de las cadenas de texto revisando que sean permutación.
Respuestas
Respuesta 1
¿Tienes una mejor respuesta o consideras que es necesario cambiar algo?
Edita el contenido de está página AQUÍ
¿Necesitas la solución de algún ejercicio?
Solicítalo AQUÍ