PROBLEM 04
同じ受信箱へ届くアドレスを数える
メールアドレスのローカル部を正規化し、実際の受信箱数を求めます。
メールサービスでは、アドレスの @ より前に次の規則があります。
.は配送時に無視される- 最初の
+から@までの文字は無視される @より後のドメインには、どちらの規則も適用しない
numUniqueEmails(emails) は、実際に異なる受信箱へ届くアドレス数を返してください。
例
入力:
["team.alpha+news@sample.dev", "teamalpha@sample.dev", "team.beta@sample.dev"]
出力: 2
制約
1 <= emails.length <= 20,000- 各アドレスはローカル部、
@、ドメインからなる +と.はローカル部にだけ現れる
STEPWISE HINTS
ヒント
01考え方の方向
各アドレスを同じ規則で正規化してから、異なる値の個数を数えます。
02使うデータ構造
@ より前だけを加工します。最初の + 以降を捨て、残った . を削除します。ドメイン側は変えません。
03擬似コード
email を @ で分ける。local = local.split('+')[0].replaceAll('.', '')。local + '@' + domain を Set に追加し、size を返す。
AFTER ACCEPTED
解説
AC 後に解説が開きます
まずは自分の言葉で方針を説明し、コードに落としてみましょう。