【问题标题】:leetcode "unique email addresses" question explanationleetcode“唯一电子邮件地址”问题解释
【发布时间】:2019-06-08 02:07:06
【问题描述】:

我在 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)

【问题讨论】:

  • 如果您对代码或我的解释有任何疑问,请随时在下面对我的回答发表评论。否则,如果您将其标记为已接受,我将不胜感激,因为答案有帮助。

标签: python-3.x indexing slice


【解决方案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 将保持不变。在这种情况下,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。我希望这个答案能让您了解代码的作用。

【讨论】:

    猜你喜欢
    • 2014-05-23
    • 2018-07-08
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 2011-04-19
    • 1970-01-01
    相关资源
    最近更新 更多