Menu
CoddyTech

スマート連絡先管理

CoddyのGDScriptジャーニー「ロジックとフロー」セクションの一部。レッスン 76/78。

challenge icon

チャレンジ

中級

連絡先のリストを整理します。プログラムは整数 n を読み取り、続けて n 行を読み取ります。各行は連絡先で、名前、メールアドレス、電話番号がカンマで区切られています(各行にはカンマがちょうど2つあります)。

連絡先を順番に確認します:

  1. メールアドレスを小文字にし、電話番号から数字だけを残します:(555) 123-4567 は 5551234567 になります
  2. メールアドレスが有効でない場合、その連絡先をスキップします。有効なメールアドレスには @ と . が含まれ、空白は含まれません
  3. 電話番号の数字がちょうど 10 桁でない場合、その連絡先をスキップします
  4. 以前に残した連絡先とメールアドレスまたは電話番号(整理後)が同じ場合、その連絡先をスキップします

残した連絡先をそれぞれ別の行に出力します:名前、 | 、メールアドレス、 | 、電話番号の数字。最後に、Contacts kept: 、残した連絡先の数、 of 、n を出力します。

次の入力の場合:

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

出力は次のとおりです:

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

Jane は電話番号の数字が John と同じなのでスキップされ、Bob はメールアドレスに @ がなく、電話番号も短すぎるためスキップされます。

自分で試してみよう

extends Node

func _ready():
	var n := int(OS.read_string_from_stdin())
	# n 件の連絡先を読み込み、整理して、残す連絡先を出力する
	pass

ロジックとフローのすべてのレッスン

自分で練習してみよう: GDScriptオンラインコンパイラ