leetcode“唯一的电子邮件地址”问题说明

时间:2019-01-14 03:43:10

标签: python-3.x indexing slice

我在leetcode上遇到了这段代码。此行如何删除'+'之后的所有内容?

  

local = local [:local.index('+')]

class Solution(object):
    def numUniqueEmails(self, emails):
        seen = set()
        for email in emails:
            local, domain = email.split('@')
            if '+' in local:
                local = local[:local.index('+')]
            seen.add(local.replace('.','') + '@' + domain)
        return len(seen)

1 个答案:

答案 0 :(得分:1)

此代码的作用是通过拆分电子邮件分别获取电子邮件的第一部分和最后一部分。示例:

email = "1234+5678@gmail.com"
//local is now 1234+5678. domain is gmail.com
local, domain = email.split('@')

现在,接下来是代码(您在问题中专门要求的代码)

if '+' in local:
    local = local[:local.index('+')]

这是如果+local中,它将获取该+的索引,并将local设置为等于其前面的字符。否则,local将保持不变。在这种情况下,本地将是1234,因为local.index('+')返回4。因此,local = local[0:4]local设置为等于前4个字符。

最后一段代码:

seen.add(local.replace('.','') + '@' + domain)
return len(seen)

这是将.中的local字符替换为空字符。然后,它添加回最初拆分的@domain,在此示例中为gmail.com。因此,现在seen应该等于:1234@gmail.com。然后返回seen的长度,即14。我希望这个答案能使您对代码的功能有所了解。