Resumen - Inventario
Parte de la sección Lógica y Flujo del Journey de Swift de Coddy — lección 17 de 56.
Desafío
IntermedioEstás haciendo el seguimiento del inventario de una tienda. Lee una sola línea de entrada: una lista separada por comas de operaciones contra un [String: Int] inicialmente vacío llamado stock. Cada operación es una de las siguientes:
in:<item>:<qty>añade la cantidad al artículo (utiliza el patrón de subíndice por defecto)out:<item>:<qty>resta la cantidad. Si la cantidad resultante es0o negativa, elimina la clave por completo.
Después de aplicar cada operación, imprime:
- Una línea por cada artículo restante, ordenado alfabéticamente, en el formato
<item>: <qty> Total units: <n>sumando cada valor restante
Para la entrada in:apple:5,in:bread:2,out:apple:3,in:apple:4,out:bread:5, la salida es:
apple: 6
Total units: 6Pruébalo tú mismo
let ops = readLine()!.components(separatedBy: ",")
var stock: [String: Int] = [:]
// TODO: analizar cada op como tipo:artículo:cantidad; in suma, out resta;
// eliminar claves cuya cantidad baje a <= 0; imprimir líneas ordenadas + total
Todas las lecciones de Lógica y Flujo
1Strings a fondo
Conteo e índicesMayúsculas, minúsculas y TrimBúsqueda en StringsDividir y unirReemplazo de subcadenasResumen: Validación de usuario4Conjuntos
Crear conjuntosUnión e intersecciónResta y diferencia simétricaSubconjunto y superconjuntoResumen - Filtro de etiquetas7Proyecto - Seguimiento de hábitos
Descripción general del proyectoMarcar como completado10Proyecto - Motor de cuestionarios
Descripción general del proyectoHacer preguntas2Rangos e Intervalos
Cerrados vs. SemiabiertosSaltos (Stride)Métodos de RangosRangos en SwitchResumen - Cuadrícula de calendario5Funciones de orden superior Pt. 1
MapFilterReduceEncadenar map, filter, reduceResumen - Estadísticas de palabras3Diccionarios
Declaración de diccionariosBúsqueda opcionalActualización de diccionariosIteración de diccionariosAgrupación de valoresResumen - Inventario6Funciones de orden superior - Parte 2
compactMapflatMapsorted(by:)Construcción de pipelinesRepaso - Tabla de posiciones