Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions app/src/main/java/com/mouredev/weeklychallenge2022/Challenge1.kt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ package com.mouredev.weeklychallenge2022
* Un Anagrama consiste en formar una palabra reordenando TODAS las letras de otra palabra inicial.
* NO hace falta comprobar que ambas palabras existan.
* Dos palabras exactamente iguales no son anagrama.
* Ejemplo: "casa" es una anagrama de "saca"
*
* Información adicional:
* - Usa el canal de nuestro discord (https://mouredev.com/discord) "🗓reto-semanal" para preguntas, dudas o prestar ayuda la acomunidad.
Expand All @@ -22,4 +23,47 @@ package com.mouredev.weeklychallenge2022

fun main() {

//Función que cuenta el número de apariencias de una determinada letra dentro de una palabra
fun contadorOcurrencias (palabra: String, letra: Char): Int {
return palabra.filter { it == letra }.length
}

//Función para dar formato a las distintas palabras
fun formatearPalabra(palabra: String): String {
return palabra.lowercase().trim()
.replace(" ", "")
.replace("á","a")
.replace("é","e")
.replace("í","i")
.replace("ó","o")
.replace("ú","u")
}

//Función principal del reto
fun esAnagrama (palabraUno : String, palabraDos : String) : Boolean{
val palabraUnoFormateada = formatearPalabra(palabraUno)
val palabraDosFormateada = formatearPalabra(palabraDos)

if((palabraUnoFormateada.length != palabraDosFormateada.length) || palabraUnoFormateada == palabraDosFormateada){
return false
}

for(letra in palabraUnoFormateada) {
val aparicionesEnPalabraUnoFormateada = contadorOcurrencias(palabraUnoFormateada, letra)
val aparicionesEnPalabraDosFormateada = contadorOcurrencias(palabraDosFormateada, letra)

if(aparicionesEnPalabraUnoFormateada != aparicionesEnPalabraDosFormateada){
return false
}
}
return true
}

//LLAMADA A LA FUNCIÓN PRINCIPAL
if(esAnagrama("canción ","noi cnac")){
println("SON ANAGRAMAS")

}else{
println("NO SON ANAGRAMAS")
}
}