Logo de Código Curioso
CodigoCurioso.com

¿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Í