Menu
CoddyTech

Gestor inteligente de contactos

Parte de la sección Lógica y flujo del Journey de GDScript de Coddy. Lección 76 de 78.

challenge icon

Desafío

Intermedio

Limpia una lista de contactos. El programa lee un número entero n y después n líneas. Cada línea es un contacto: un nombre, un correo electrónico y un número de teléfono, separados por comas (cada línea tiene exactamente dos comas).

Recorre los contactos en orden:

  1. Escribe el correo electrónico en minúsculas y conserva solo los dígitos del número de teléfono: (555) 123-4567 se convierte en 5551234567
  2. Omite el contacto si el correo electrónico no es válido: un correo electrónico válido contiene @ y ., y ningún espacio
  3. Omite el contacto si el número de teléfono no tiene exactamente 10 dígitos
  4. Omite el contacto si un contacto que conservaste antes tiene el mismo correo electrónico o el mismo número de teléfono (después de limpiarlo)

Imprime cada contacto que conserves en su propia línea: el nombre, | , el correo electrónico, | y los dígitos del teléfono. Por último, imprime Contacts kept: , cuántos conservaste, of y n.

Para estas entradas:

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

la salida es:

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

Se omite a Jane porque su número de teléfono tiene los mismos dígitos que el de John, y a Bob porque su correo electrónico no tiene @ y su número de teléfono es demasiado corto.

Pruébalo tú mismo

extends Node

func _ready():
	var n := int(OS.read_string_from_stdin())
	# Lee n contactos, depúralos e imprime los que conserves
	pass

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Compilador de GDScript online