Menu
CoddyTech

Gerenciador Inteligente de Contatos

Parte da seção Lógica e fluxo do Journey de GDScript da Coddy. Lição 76 de 78.

challenge icon

Desafio

Médio

Limpe uma lista de contatos. O programa lê um número inteiro n e, em seguida, n linhas. Cada linha é um contato: um nome, um e-mail e um número de telefone, separados por vírgulas (cada linha tem exatamente duas vírgulas).

Percorra os contatos na ordem:

  1. Escreva o e-mail em letras minúsculas e mantenha apenas os dígitos do número de telefone: (555) 123-4567 se torna 5551234567
  2. Pule o contato se o e-mail não for válido: um e-mail válido contém @ e ., e nenhum espaço
  3. Pule o contato se o número de telefone não tiver exatamente 10 dígitos
  4. Pule o contato se algum contato mantido anteriormente tiver o mesmo e-mail ou o mesmo número de telefone (após a limpeza)

Imprima cada contato mantido em uma linha própria: o nome, | , o e-mail, | e os dígitos do telefone. Por último, imprima Contacts kept: , quantos contatos você manteve, of e 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

a saída é:

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

Jane é ignorada porque o número de telefone dela tem os mesmos dígitos que o de John, e Bob porque o e-mail dele não tem @ e o número de telefone é curto demais.

Experimente você mesmo

extends Node

func _ready():
	var n := int(OS.read_string_from_stdin())
	# Leia n contatos, limpe-os e imprima os que você mantiver
	pass

Todas as lições de Lógica e fluxo

Pratique por conta própria: Compilador de GDScript online