Segna come completato
Fa parte della sezione Logica e flusso del percorso Swift di Coddy. Lezione 34 di 56.
La prima funzionalità: elaborare un elenco di azioni «segna questa abitudine come completata in questo giorno» e produrre uno stato finale.
Ogni riga di input è un'operazione nel formato habit:day, dove day è compreso tra 1 e 7. Se l'abitudine non esiste ancora, creala con un array vuoto, poi aggiungi il giorno. Se un giorno è già registrato per quell'abitudine, non registrarlo due volte.
Ti baserai sul modello di valore predefinito con pedice del capitolo sui dizionari: habits[name, default: []].append(day) funziona sia che la chiave esista sia che non esista.
Sfida
FacileLeggi una singola riga di input: un elenco separato da virgole di voci habit:day (ad es. read:1,read:3,workout:2). Dopo aver applicato ogni operazione, stampa le abitudini in ordine alfabetico, una per riga, nel formato:
<habit>: <days_sorted_ascending_joined_with_comma>Salta le coppie habit:day duplicate.
Per l'input read:1,read:3,workout:2,read:1,read:5,workout:4, l'output è:
read: 1,3,5
workout: 2,4Provalo tu
var habits: [String: [Int]] = [:]
let ops = readLine()!.components(separatedBy: ",")
// TODO: per ogni op, analizza name:day e aggiungi day se non è già presente;
// poi stampa habits in ordine alfabetico, con i giorni ordinati
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Conteggio e indiciMaiuscole, minuscole e rimozione degli spaziRicerca nelle stringheSuddivisione e unioneSostituzione di sottostringheRiepilogo - Verifica del nome utente4Insiemi
Creare insiemiUnione e intersezioneDifferenza e differenza simmetricaSottoinsieme e sovrainsiemeRiepilogo - Filtro per tag7Progetto - Tracciatore di abitudini
Panoramica del progettoSegna come completato10Progetto - Motore di quiz
Panoramica del progettoPorre domande2Intervalli e passi
Intervalli chiusi e semiapertiPassoMetodi degli intervalliIntervalli in switchRiepilogo - Griglia del calendario5Funzioni di ordine superiore Parte 1
MapFilterReduceConcatenare map, filter e reduceRiepilogo - Statistiche sulle paroleEsercitati da solo: Playground Swift