Skip to content

Latest commit

 

History

History
19 lines (16 loc) · 654 Bytes

File metadata and controls

19 lines (16 loc) · 654 Bytes

step3 3回続けて10分以内に書いてエラーを出さなければOKとする

# @param {String[]} emails
# @return {Integer}
def num_unique_emails(emails)
    valid_email_pattern = /\A[a-z][a-z.+]*@[a-z][a-z.+]*\.com\z/
    unique_canonicalized_emails = Set.new

    emails.each do |email|
        next unless valid_email_pattern.match?(email)

        canonicalized_local, canonicalized_domain = email.split("@")
        canonicalized_local = canonicalized_local.split("+").first.delete(".")
        unique_canonicalized_emails.add("#{canonicalized_local}@#{canonicalized_domain}")
    end

    unique_canonicalized_emails.count
end