【929. 独特的电子邮件地址】

news/2024/10/31 1:31:40/

来源:力扣(LeetCode)

描述:

每个 有效电子邮件地址 都由一个 本地名 和一个 域名 组成,以 '@' 符号分隔。除小写字母之外,电子邮件地址还可以含有一个或多个 '.''+'

  • 例如,在 alice@leetcode.com中, alice 是 本地名 ,而 leetcode.com 是 域名 。

如果在电子邮件地址的 本地名 部分中的某些字符之间添加句点('.'),则发往那里的邮件将会转发到本地名中没有点的同一地址。请注意,此规则 不适用于域名

  • 例如,"alice.z@leetcode.com”“alicez@leetcode.com” 会转发到同一电子邮件地址。

如果在 本地名 中添加加号('+'),则会忽略第一个加号后面的所有内容。这允许过滤某些电子邮件。同样,此规则 不适用于域名

  • 例如 m.y+name@email.com 将转发到 my@email.com

可以同时使用这两个规则。

给你一个字符串数组 emails,我们会向每个 emails[i] 发送一封电子邮件。返回实际收到邮件的不同地址数目。

示例 1:

输入:emails = ["test.email+alex@leetcode.com","test.e.mail+bob.cathy@leetcode.com","testemail+david@lee.tcode.com"]
输出:2
解释:实际收到邮件的是 "testemail@leetcode.com""testemail@lee.tcode.com"

示例 2:

输入:emails = ["a@leetcode.com","b@leetcode.com","c@leetcode.com"]
输出:3

提示:

  • 1 <= emails.length <= 100
  • 1 <= emails[i].length <= 100
  • emails[i] 由小写英文字母、'+''.''@' 组成
  • 每个 emails[i] 都包含有且仅有一个 '@' 字符
  • 所有本地名和域名都不为空
  • 本地名不会以 '+' 字符作为开头

方法:哈希表

根据题意,我们需要将每个邮件地址的本地名按照规则转换,具体来说:

  • 去掉本地名中第一个加号之后的部分(包括加号);
  • 去掉本地名中所有的句点。

转换后得到了实际的邮件地址。

为了计算不同地址的数目,我们可以用一个哈希表记录所有的邮件地址,答案为哈希表的长度。

代码:

class Solution {
public:int numUniqueEmails(vector<string> &emails) {unordered_set<string> emailSet;for (auto &email: emails) {string local;for (char c: email) {if (c == '+' || c == '@') {break;}if (c != '.') {local += c;}}emailSet.emplace(local + email.substr(email.find('@')));}return emailSet.size();}
};

执行用时:12 ms, 在所有 C++ 提交中击败了98.76%的用户
内存消耗:13.6 MB, 在所有 C++ 提交中击败了65.92%的用户
复杂度分析
时间复杂度:O(L),其中 L 是 emails 中字符串的长度之和。
空间复杂度:O(L)。哈希表需要 O(L) 的空间。
官方解释~


http://www.ppmy.cn/news/491028.html

相关文章

杂志社的电子邮件地址

〈大公报〉向报社投稿,请Email: tkppubtakungpao.com 香港成报 电子邮件地址: dailynewssingpao.com.hk contactsingpao.com.hk 香港镜报 电子邮件地址: mpjbnetvigator.com 香港文汇报 电子邮件地址: editorwenweipo.com 香港新报 电子邮件地址: edithkdailynews.com.hk 明报周…

929. 独特的电子邮件地址

每封电子邮件都由一个本地名称和一个域名组成&#xff0c;以 符号分隔。 例如&#xff0c;在 aliceleetcode.com中&#xff0c; alice 是本地名称&#xff0c;而 leetcode.com 是域名。 除了小写字母&#xff0c;这些电子邮件还可能包含 . 或 。 如果在电子邮件地址的本地名…

2021最新版谷歌卫星地图已出炉,纯免费下载

2021最新版谷歌卫星地图资源已经更新&#xff0c;可免费下载&#xff0c;建议Z发收藏&#xff01; 获取方法&#xff1a; 1、下载图新地球电脑端www.tuxingis.com或者手机端外业精灵app&#xff1b; 2、导入网盘图源文件就可以正常浏览谷歌卫星地图、谷歌3d地形等 网盘链接…

谷歌地球APP

如图&#xff1a; 扫码安装&#xff1a;

三维地图下载,3D地图下载,谷歌地球三维地形图查看

更多示例代码&#xff1a;http://www.bigemap.com/offlinemaps/gl.html 3D地球依据高程数据等对地表进行渲染&#xff0c;实现地表的起伏&#xff0c;模拟出真实的三维场景&#xff0c;让你有如身临其境般的感觉。 &#xff08;注&#xff1a;Bigemap 3D地球是一个三维地图浏览…

google earth的网页版

今天浏览网页&#xff0c;发现了googler earth的网页版&#xff0c;挺漂亮的。 网页地址&#xff1a;https://earth.google.com/web/ 需要用纯的chrome浏览器&#xff0c;360的那个版本的chrome不行。会提示“Unfortunately your computer does not support WebGL graphics a…

谷歌地球(Google Earth) 7.3.2.5776

点击下载来源&#xff1a;谷歌地球(Google Earth) 7.3.2.5776 谷歌地球(Google Earth)是一款Google公司开发的虚拟地球仪软件&#xff0c;它把卫星图像、地图、百科全书和飞行模拟器整合在一起&#xff0c;布置在一个地球的三维模型上。通过它我们可以找到你想找到的地方&…

海康DS-7108HC-E1固件升级包

海康DS-7108HC-E1固件升级包海康DS-7108HC-E1固件升级包海康DS-7108HC-E1固件升级包