Desafío - Auditoría de puntuaciones
Parte de la sección Lógica y flujo del Journey de Kotlin de Coddy. Lección 62 de 63.
Desafío
ExpertoCompleta scoreAudit con los parámetros rows: List<String>. Cada fila tiene el formato name:score. Ignora las filas a menos que dividirlas por : produzca exactamente dos campos, el nombre sin espacios iniciales ni finales coincida con [a-z]+ y la puntuación sin espacios iniciales ni finales se pueda analizar como Int entre 0 y 100. Para los nombres repetidos, conserva la puntuación válida más reciente; las filas no válidas nunca reemplazan las puntuaciones anteriores. Devuelve las entradas name=score ordenadas por puntuación decreciente y, en caso de empate, alfabéticamente.
A menos que se indiquen límites más estrictos arriba, las colecciones contienen como máximo 100 elementos en cada nivel, y los argumentos enteros y los valores enteros de las colecciones están entre -1000 y 1000. El texto proporcionado para el análisis puede incluir representaciones no válidas o fuera de rango, como se describe.
Devuelve un valor de tipo List<String>. Conserva el código de entrada/salida proporcionado. Lee los argumentos escalares, uno por línea; una lista comienza con su cantidad, seguida de sus elementos, y un mapa comienza con su cantidad de entradas, seguida de cada clave y valor. Las listas anidadas repiten el formato de cantidad y elementos para cada fila. El main proporcionado imprime el valor devuelto seguido de un salto de línea. Las listas utilizan el formato estándar entre corchetes de Kotlin; no imprimas etiquetas adicionales.
Pruébalo tú mismo
fun scoreAudit(rows: List<String>): List<String> {
// Escribe tu solución aquí.
return emptyList()
}
fun main() {
val rowsCount = readln().toInt()
val rows = mutableListOf<String>()
for (i0 in 0 until rowsCount) {
val rowsItem = readLine().orEmpty()
rows.add(rowsItem)
}
println(scoreAudit(rows))
}Todas las lecciones de Lógica y flujo
1Mapas Parte 1
Crear mapasBúsquedas seguras en mapasActualizar mapasComprobar clavesRepaso - Stock Desk4Colecciones anidadas
Listas de listasRecorrer filasResúmenes de filasAplanar listas anidadasRepaso: filas de asientos7Flujos de colecciones
Transformar con MapFiltrar valoresProbar reglas de coleccionesAcumular con FoldRepaso: totales aprobados10Procesamiento de texto
Dividir y unirConstruir texto de forma eficienteCoincidir con patrones de textoBuscar y reemplazarRepaso: código más limpio13Desafíos finales
Desafío - Análisis de palabrasDesafío - Auditoría de puntuacionesDesafío - Suministros compartidos2Mapas, parte 2
Iterar entradas de mapasClaves y valoresMapas de frecuenciaMapas anidadosRepaso: informe de frecuencias5Proyecto - Agenda de contactos
Guardar contactosBuscar contactos3Conjuntos y pertenencia
Crear conjuntosActualizar conjuntosOperaciones con conjuntosComprobación de subconjuntosRepaso: invitados al evento6Valores de función
Escribir lambdasTipos de funciónPasar funcionesVariables capturadasRepaso - Puntuación configurablePractica por tu cuenta: Playground de Kotlin