Menu
CoddyTech

Intelligente Kontaktverwaltung

Teil des Abschnitts Logik & Ablaufsteuerung der GDScript-Journey von Coddy. Lektion 76 von 78.

challenge icon

Aufgabe

Mittel

Bereinige eine Kontaktliste. Das Programm liest eine ganze Zahl n und anschließend n Zeilen. Jede Zeile enthält einen Kontakt: einen Namen, eine E-Mail-Adresse und eine Telefonnummer, durch Kommas getrennt (jede Zeile enthält genau zwei Kommas).

Gehe die Kontakte der Reihe nach durch:

  1. Schreibe die E-Mail-Adresse in Kleinbuchstaben und behalte von der Telefonnummer nur die Ziffern: (555) 123-4567 wird zu 5551234567
  2. Überspringe den Kontakt, wenn die E-Mail-Adresse ungültig ist: Eine gültige E-Mail-Adresse enthält @ und . und kein Leerzeichen
  3. Überspringe den Kontakt, wenn die Telefonnummer nicht genau 10 Ziffern hat
  4. Überspringe den Kontakt, wenn ein zuvor übernommener Kontakt dieselbe E-Mail-Adresse oder dieselbe Telefonnummer (nach der Bereinigung) hat

Gib jeden übernommenen Kontakt in einer eigenen Zeile aus: den Namen, | , die E-Mail-Adresse, | und die Ziffern der Telefonnummer. Gib zuletzt Contacts kept: , die Anzahl der übernommenen Kontakte, of und n aus.

Für diese Eingaben:

3
John Doe,JOHN@email.com,123-456-7890
Jane Doe,jane@email.com,123.456.7890
Bob Smith,invalid.email,12345

lautet die Ausgabe:

John Doe | john@email.com | 1234567890
Contacts kept: 1 of 3

Jane wird übersprungen, weil ihre Telefonnummer dieselben Ziffern wie die von John hat, und Bob, weil seiner E-Mail-Adresse ein @ fehlt und seine Telefonnummer zu kurz ist.

Probier es selbst

extends Node

func _ready():
	var n := int(OS.read_string_from_stdin())
	# Lies n Kontakte ein, bereinige sie und gib die behaltenen aus
	pass

Alle Lektionen in Logik & Ablaufsteuerung

Übe selbstständig: Online-GDScript-Compiler