LeetCode 929. 独特的电子邮件地址

1. 题目

每封电子邮件都由一个本地名称和一个域名组成,以 @ 符号分隔。

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

除了小写字母,这些电子邮件还可能包含 ‘.’ 或 ‘+’。

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

如果在本地名称中添加加号('+'),则会忽略第一个加号后面的所有内容。
这允许过滤某些电子邮件,例如 m.y+name@email.com 将转发到 my@email.com。 (同样,此规则不适用于域名。)

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

给定电子邮件列表 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"。提示:
1 <= emails[i].length <= 100
1 <= emails.length <= 100
每封 emails[i] 都包含有且仅有一个 '@' 字符。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/unique-email-addresses
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • +@ 之间的 忽略
  • @ 符号前面的 . 忽略
class Solution {
public:int numUniqueEmails(vector<string>& emails) {set<string> s;string str;int i, j;bool meetAt, meetPlus;for(i = 0; i < emails.size(); ++i){meetPlus = meetAt = false;str = "";for(j = 0; j < emails[i].size(); ++j){if(emails[i][j] == '+')meetPlus = true;else if(emails[i][j] == '@'){meetAt = true;}if(!meetAt && !meetPlus && emails[i][j] != '.')str.push_back(emails[i][j]);//没遇到@ + 不是 .if(meetAt)//@ 之后的不处理str.push_back(emails[i][j]);}s.insert(str);}return s.size();}
};

28 ms 11.5 MB

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476054.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

推荐系统常用评价指标和代码实现

评价指标 Recall 名称&#xff1a; 召回率&#xff08;真阳性率&#xff09; 意义&#xff1a;在推荐系统中&#xff0c;我们只关心正确推荐的有多少&#xff0c;也就是用户真实喜欢的&#xff0c;并不会关心推荐错的&#xff0c;所以我们用召回率&#xff0c;而不是准确率&a…

哥谈的是语言,不是寂寞

经常看到一些文章在谈论语言&#xff0c;例如“哪个语言更有前途”&#xff0c;“语言选择是否关键”。我是个语言粉丝&#xff0c;但是看到这些文章总有一些奇怪的感觉。因为在我看来&#xff0c;这些文章谈的东西都不是我眼中的语言——可能与国内技术环境有关&#xff0c;语…

python timeit用法_十大Python开发技巧

Python开发指南, 超级实用足以让您震撼> Photo by Christina Morillo from StockSnap时不时地&#xff0c;当我了解Python的新功能时&#xff0c;或者我发现其他一些人不知道该功能时&#xff0c;我会记下它。在过去的几周中&#xff0c;我最近了解或实现了一些有趣的功能-S…

python编程中的经验(一直更新)

文章目录1. python基础语法1.1 怎么让两个list或者其它可以迭代的放到一起1.2 random.choice(x, n, replaceTrue) numpy中从某个数据集中选择1.3 如何根据key返回字典的value1.4 The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all…

LeetCode 953. 验证外星语词典

1. 题目 某种外星语也使用英文小写字母&#xff0c;但可能顺序 order 不同。 字母表的顺序&#xff08;order&#xff09;是一些小写字母的排列。 给定一组用外星语书写的单词 words&#xff0c;以及其字母表的顺序 order&#xff0c;只有当给定的单词在这种外星语中按字典序…

Cairngorm初学者入门教程 第六节--Cairngorm中Command利用Delegate与Service连接

在上一节&#xff0c;我们利用FrontController 去映射 Event与Command 在这一节我们主要针对Command这部分动作做介紹。在RIA应用程序中&#xff0c;不可或缺的部份就是跟后台服务器连接进行数据传递。Command通过Delegate去做Services的部份(包含Remoting,WebServices,…等) C…

3d点击_3D打印服务加工在医疗器械行业的应用

3D打印技术如今已经很常见的出现在了我们日常的制造生产中。普通的3D打印机从最开始的几万块到如今的几千块&#xff0c;设备价格的降低也使得3D打印技术普及率的增加&#xff0c;而技术的普及也推动着技术的发展。3D打印开始应用到许多行业当中&#xff0c;下面悟空打印坊3D打…

LeetCode 1033. 移动石子直到连续

1. 题目 三枚石子放置在数轴上&#xff0c;位置分别为 a&#xff0c;b&#xff0c;c。 每一回合&#xff0c;我们假设这三枚石子当前分别位于位置 x, y, z 且 x < y < z。 从位置 x 或者是位置 z 拿起一枚石子&#xff0c;并将该石子移动到某一整数位置 k 处&#xff0…

所有算法库的使用(sklearn,scipy)

文章目录1. sklearn1.1 sklearn.preprocessing 之 fit 和 transform 以及 fit_transform1.2 算法之 fit 和 predict和predict_proba1.3 predict_proba1.4 各种评测指标1.4.1 R2R^2R21.4.2 准确度、精准率、召回率1.4.3 平均绝对误差(MAE)和均方误差(MSE)1.5 特征缩放 StandardS…

Perl文档操作选项

文件测试操作符 操作符 描述 -b 是否为块设备 -c 是否为字符设备 -d 是否为目录 -e 是否存在 -f 是否为普通文件 -g 是否设置了setgid位 -k 是否设置了sticky位 -l 是否为符号链接 -o 是否拥有该文件 -p 是否为管道 -r 是否可读 -s 是否非空 -t 是否表…

android aar保存图片文件异常_我去!合并AAR时踩坑了!

点击上方“刘望舒”&#xff0c;马上关注&#xff0c;早上8:42推送真爱&#xff0c;请置顶或星标作者: leeon7https://www.jianshu.com/p/8f7e32015836背景在输出Android模块时&#xff0c;有时会因为个别原因(比如来自业务的不可抗力)&#xff0c;要求将模块打包成一个文件提供…

LeetCode 1037. 有效的回旋镖

1. 题目 回旋镖定义为一组三个点&#xff0c;这些点各不相同且不在一条直线上。 给出平面上三个点组成的列表&#xff0c;判断这些点是否可以构成回旋镖。 示例 1&#xff1a; 输入&#xff1a;[[1,1],[2,3],[3,2]] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a…

与kylin_Kylin 迁移到 HBase 实践在小米的实践

背景小米Kylin生产环境部署的是基于社区2.5.2修改的内部版本&#xff0c;所依赖HBase集群是一个公共集群&#xff0c;小米内部很多离线计算服务共享使用该HBase集群。由于Kylin已经产生超过6000张HBase表&#xff0c;给HBase的metadata管理造成了不小的压力&#xff0c;HBase m…

jupyter切换内核

激活环境 conda activate envname 安装jupyter pip install jupyter pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jupyter 安装ipkernel pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ipykernel 设置名字 python -m ipykernel install --use…

LeetCode 1227. 飞机座位分配概率(DP+数学归纳法)

1. 题目 有 n 位乘客即将登机&#xff0c;飞机正好有 n 个座位。第一位乘客的票丢了&#xff0c;他随便选了一个座位坐下。 剩下的乘客将会&#xff1a; 如果他们自己的座位还空着&#xff0c;就坐到自己的座位上&#xff0c; 当他们自己的座位被占用时&#xff0c;随机选择…

应广单片机adc_应广PMC232系列单片机 12位ADC PWM LCD 双核心8位MCU

PMC232系列 台湾应广 一级代理 现货批发 长期供应带12位ADC、采用FPPATM技术、双核心8位单片机PMC232为P232的升级版&#xff0c;内部基准电压更准&#xff0c;节省TL431。工作电压更宽&#xff0c;功耗更低&#xff0c;可用于移动式手持设备。引入单一FPPA运作模式&#xff0c…

网络动态负载均衡算法分析

转自CSDN博客&#xff1a;http://blog.csdn.net/wallacexiang/archive/2009/07/24/4376147.aspx   随着Internet的日益普及&#xff0c;无论在企业网、园区网还是在广域网如Internet上&#xff0c;用户与业务量呈现出指数性增长&#xff0c;尤其是在网络的关键节点和核心网络…

pymysql连接以及连接池的理解

mysql连接 1. 不使用连接池 我们知道使用pymysql连接数据库一般需要下面的步骤: 创建连接对象(一般使用connect或者是连接池) 创建游标对象 使用游标执行代码 使用游标获取结果并返回 # 返回的是元组(每个实例一个元组)! 关闭游标和连接 conn pymysql.connect(host, p…

LeetCode 1025. 除数博弈(动态规划)

1. 题目 爱丽丝和鲍勃一起玩游戏&#xff0c;他们轮流行动。爱丽丝先手开局。 最初&#xff0c;黑板上有一个数字 N 。在每个玩家的回合&#xff0c;玩家需要执行以下操作&#xff1a; 选出任一 x&#xff0c;满足 0 < x < N 且 N % x 0 。用 N - x 替换黑板上的数字…

python iterator iterable_Python中Iterator和Iterable的区别

python中list, str&#xff0c;truple, dict都是可以被迭代的&#xff0c;但他们不是迭代器。why?list/truple/map/dict这些数据的大小是确定的&#xff0c;我们可以准确知道他们的size。迭代器不知道要执行多少次&#xff0c;所以可以理解为不知道有多少个元素&#xff0c;每…