leetcode.929.UniqueEmailAddresses

links: https://leetcode.com/problems/unique-email-addresses/

传送门


思路:以@分成两部分A|B,后半部分B留用。前半部分A,将第一个“+”号后面的部分忽略掉,然后将剩余部分中的“.” 都删除或者替换掉,最终剩余部分C。C@B就是最终能接收到邮件的邮箱。

上代码, 这里处理每个邮件又单独写了一个方法

class Solution(object):
    def numUniqueEmails(self, emails):
        """
        :type emails: List[str]
        :rtype: int
        """
        alist = [self.emailHandle(email) for email in emails]
        return len(set(alist))

    def emailHandle(self, email):
    	pre, postfix = email.split("@")
    	cn = pre.split("+")
    	cn[0] = "".join(cn[0].split("."))
    	target =  "@".join([cn[0], postfix])
    	return target

 leetcode上大多人的方案都是直接写在了numUniqueEmails 里面,如

https://leetcode.com/problems/unique-email-addresses/discuss/350964/Solution-in-Python-3-(beats-~100)

原文地址:https://www.cnblogs.com/Wolfanature/p/11482279.html