Kontakte speichern
Teil des Abschnitts Logik & Ablauf der Kotlin-Journey von Coddy. Lektion 21 von 63.
Erstelle ein Kontaktbuch, das Kontakte speichert, findet und entfernt, anschließend Namen auflistet und Statistiken ausgibt. Eine veränderbare Map speichert eine Telefonnummer pro Name. Befehle innerhalb eines Aufrufs verwenden dieselbe Map; jeder neue Aufruf beginnt mit einer leeren Map. Der bereitgestellte Eingabecode liest drei Listen gleicher Länge ein. Implementiere die Befehlsschleife in contactBook.
val contacts = mutableMapOf<String, String>()Aufgabe
SchwerVervollständige contactBook mit den Parametern commands: List<String>, names: List<String>, phones: List<String>. Erstelle ein im Speicher befindliches Kontaktbuch, das bei jedem Funktionsaufruf leer beginnt. Die drei Listen haben dieselbe Länge, höchstens 100. An jeder Position wählt commands eine Operation aus; names und phones liefern deren Argumente. Namen sind nichtleere Wörter aus kleingeschriebenen ASCII-Zeichen; phones sind nichtleere Ziffernfolgen und müssen als Zeichenketten erhalten bleiben, damit führende Nullen bewahrt werden. Jeder Befehl erzeugt eine Antwort in der zurückgegebenen Liste. Unterstütze PUT: Speichere die Telefonnummer für den angegebenen Namen oder ersetze sie und antworte anschließend mit saved. Die Eingaben enthalten in diesem Schritt nur unterstützte Befehle. Nicht verwendete Argumentzeichenketten können beliebiger nichtleerer Text sein.
Sofern oben keine strengeren Grenzen angegeben sind, enthalten Sammlungen auf jeder Ebene höchstens 100 Elemente, und ganzzahlige Argumente sowie ganzzahlige Sammlungswerte liegen zwischen -1000 und 1000. Für die Analyse bereitgestellter Text kann ungültige oder außerhalb des gültigen Bereichs liegende Darstellungen enthalten, wie beschrieben.
Gib einen Wert vom Typ List<String> zurück. Behalte den bereitgestellten Eingabe-/Ausgabecode bei. Er liest skalare Argumente jeweils in einer eigenen Zeile; eine Liste beginnt mit ihrer Anzahl, gefolgt von ihren Elementen, und eine Map beginnt mit der Anzahl ihrer Einträge, gefolgt von jedem Schlüssel und Wert. Verschachtelte Listen wiederholen für jede Zeile das Format aus Anzahl und Elementen. Das bereitgestellte main gibt den Rückgabewert gefolgt von genau einem Zeilenumbruch aus. Listen verwenden das standardmäßige eckige Format von Kotlin; gib keine zusätzlichen Bezeichnungen aus.
Probier es selbst
fun contactBook(commands: List<String>, names: List<String>, phones: List<String>): List<String> {
// Schreibe deine Lösung hier.
return emptyList()
}
fun main() {
val commandsCount = readln().toInt()
val commands = mutableListOf<String>()
for (i0 in 0 until commandsCount) {
val commandsItem = readLine().orEmpty()
commands.add(commandsItem)
}
val namesCount = readln().toInt()
val names = mutableListOf<String>()
for (i0 in 0 until namesCount) {
val namesItem = readLine().orEmpty()
names.add(namesItem)
}
val phonesCount = readln().toInt()
val phones = mutableListOf<String>()
for (i0 in 0 until phonesCount) {
val phonesItem = readLine().orEmpty()
phones.add(phonesItem)
}
println(contactBook(commands, names, phones))
}Alle Lektionen in Logik & Ablauf
1Maps Teil 1
Maps erstellenSichere Maps-ZugriffeMaps aktualisierenSchlüssel prüfenRückblick – Lagerverwaltung4Verschachtelte Sammlungen
Listen von ListenZeilen durchlaufenZeilenzusammenfassungenVerschachtelte Listen abflachenRückblick – Sitzreihen7Collection-Pipelines
Transformieren mit MapWerte filternSammlungsregeln testenMit Fold akkumulierenRückblick – genehmigte Summen10Textverarbeitung
Teilen und ZusammenfügenTexte effizient erstellenTextmuster abgleichenSuchen und ErsetzenRückblick – Code bereinigen13Abschließende Herausforderungen
Herausforderung – WortanalyseHerausforderung – PunkteprüfungHerausforderung – Geteilte Vorräte2Maps Teil 2
Map-Einträge durchlaufenSchlüssel und WerteHäufigkeits-MapsVerschachtelte MapsRückblick – Häufigkeitsbericht5Projekt – Kontaktbuch
Kontakte speichernKontakte finden3Mengen und Mitgliedschaft
Mengen erstellenMengen aktualisierenMengenoperationenTeilmenge prüfenRückblick – Gäste der Veranstaltung6Funktionswerte
Lambdas schreibenFunktionstypenFunktionen übergebenErfasste VariablenRückblick – Konfigurierbare PunktzahlÜbe selbstständig: Kotlin-Playground