Reto 50: LA ENCRIPTACIÓN DE KARACA

PHOTO EMBED

Tue Dec 13 2022 12:31:46 GMT+0000 (Coordinated Universal Time)

Saved by @ericggDev #kotlin

* Reto #50
 * LA ENCRIPTACIÓN DE KARACA
 * Fecha publicación enunciado: 12/11/22
 * Fecha publicación resolución: 19/12/22
 * Dificultad: FÁCIL
 *
 * Enunciado: Crea una función que sea capaz de encriptar y desencriptar texto utilizando el
 * algoritmo de encriptación de Karaca (debes buscar información sobre él).

val numbersMap = mapOf("a" to 0, "e" to 1, "i" to 2, "o" to 3, "u" to 4)
fun main() {
    println(encrypt("apple"))
    println(decrypt(encrypt("apple")))
}


fun encrypt(word:String):String{
    val reversedWord = word.reversed()
    var encryptedWord:String = ""
    reversedWord.forEachIndexed{ i, it ->
           encryptedWord += if(numbersMap.contains(it.toString())) numbersMap[it.toString()] else reversedWord[i]   
    }
     return encryptedWord + "aca"
}

fun decrypt(word:String):String{
    val encriptedWord = word.removeRange(word.length-3, word.length)
    val reversedWord = encriptedWord.reversed()
    var decryptedWord:String = ""
    reversedWord.forEachIndexed{ i, letter ->
           decryptedWord += if(numbersMap.containsValue(Character.getNumericValue(letter))) numbersMap.entries.find { it.value == Character.getNumericValue(letter)}?.key else reversedWord[i]   
    }
    return decryptedWord
}


content_copyCOPY