SGU 274 Spam-filter
题意:
按照给定的条件判断给出的邮箱地址是否合法。
Solution:
模拟。需要注意输入中可能包含空格。
空串不能作为symbol,因此prefix也不能包含连续和出现在首尾的'.'
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int n; string s; bool symbol (char c) {return c == '_' || (c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '-'; } bool prefix (string s) {if (s.size() == 0) return 0;for (int i = 0, cnt = 0; i < s.size(); ++i) {if (s[i] == '.') {if ( i == 0 || i == s.size() - 1) return 0 ;else if (s[i + 1] == '.' || s[i - 1] == '.') return 0;}else if (!symbol (s[i]) ) return 0;}return 1; } int main() {cin >> n;getchar();while (n--) {getline (cin, s);bool ok = 1;int p = s.find ('@');if (p >= 0) {string t (s, 0, p);s.assign (s, p + 1, s.size() );if (!prefix (t) ) ok = 0;p = s.rfind ('.');if (p >= 0 && ok) {string t (s, 0, p);s.assign (s, p + 1, s.size() );if (!prefix (t) ) ok = 0;if (s.size() < 2 || s.size() > 3) ok = 0;for (int i = 0; i < s.size() && ok; ++i) {if (! ( (s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z') ) ) ok = 0;}}else ok = 0;}else ok = 0;if (ok) puts ("YES");else puts ("NO");} }
View Code
转载于:https://www.cnblogs.com/keam37/p/4485954.html
SGU 274 Spam-filter相关推荐
- [Spam]垃圾邮件者纲要(Spammer's Compendium)
(中文文字来源于"中国数字部落(DIGIBLOG_ORG) - 无关紧要的消息":http://digiblog.org/) (p.s.:Spammer's Compendium用 ...
- Python菜鸟学习手册14----标准库+代码实例
Python Standard Library 翻译: Python 江湖群 10/06/07 20:10:08 编译 0.1. 关于本书 0.2. 代码约定 0.3. 关于例子 0.4. 如何联系我 ...
- Python 模块大全(很详细!)
转载:.... Python的模块大全,很全,有详细介绍! 另外附Python两个教程 1. Python详细教程(廖雪峰的官方网站,语言简洁!) 2. Python 进阶教程 (Vamei) 3. ...
- python 各种模块学习
from:https://blog.csdn.net/weiwangchao_/article/details/70570508 转载:.... Python的模块大全,很全,有详细介绍! 另外附Py ...
- Python2.0 模块大全
博客 学院 下载 更多 写博客 qq779488143 Python 模块大全(很详细!) 转载 2014年12月12日 20:47:18 标签: Python / 模块 / 教程 3694 转载:. ...
- postfix邮件安装配置文档
POSTFIX邮局系统搭建全过程 第一篇:邮件系统搭建 一.系统环境: 1. 采用Centos 5.5系统也或者是rhel 5.5: 2. 内存最好为512M以上: 3. 本次采用的系统主机名为mai ...
- Live2009各产品(如MSN)强迫升级时Server2003系统失败的解决办法
一.摘要 2月17日微软开始强制升级MSN等产品到Live 2009版本.不升级就不能再继续使用, 比如我的Beta版本的MSN2009就无法再登陆.但是悲剧是Server2003等操作系统上升级会提 ...
- The bag-of-words model
(源自:http://en.wikipedia.org/wiki/Bag_of_words_model) The bag-of-words model is a simplifying assumpt ...
- python基础学习笔记(八)
创建自已对象就python非常核心的概念,事实上,python被称为面向对象语言,本章会介绍如何创建对象.以及面向对象的概念:继承.封装.多态. 多态: 可对不同类的对象使用同样的操作. 封装:对外部 ...
最新文章
- php include request 区别
- 面向对象编程方法-抽象
- MongoDB学习day10--数据库导入导出
- 为确保网络中不同计算机,在计算机网络中,为确保网络中不同计算机之间能正确地传送和接收数据,它们必须遵循一组共同的规则和约定。这些规则、约定或标准通常被称为____。...
- 概率论与环境数理统计 20210222
- 冰河木马简易使用 ——病毒木马 003
- 定时获取AccessToken——萤石开放平台
- PMP49个过程组知识领域ITTO汇总 -- 项目采购管理
- 四季电台应用项目源码
- 1103 Integer Factorization (30分)
- 图形学:纹理寻址模式与UVTiling
- 37岁被裁员,出来再找工作,大公司不愿要,无奈去小公司面试,HR的话扎心了
- linuxcentos6笔记
- opencv学习手册(三)(线条识别)(更新中
- Apollo搭建使用
- 计算多项式的值编程c语言,Newton插值多项式计算函数的近似值
- 《第一堂棒球课》:王牌二垒手·棒球4号位
- 【目标检测】K-means计算anchors
- oracle数据库some,【案例】Oracle报错Some indexes or index [sub]partitions of table VAS.TAB_PUB_CALLLOG...
- 使用assembly插件打包maven项目
热门文章
- 拯救万千学子于水深火热之中!Facebook开源无梯度优化工具
- 李彦宏说互联网思维已过时,AI可以根本上变革交通、城市、农业和医疗
- Waymo无人出租车年底发射,现已进入定价环节 | 公交部门竟成友军?
- CMU科学家们带一群机器人开房,并收集了28,000种不同的姿势
- “Google只认钱!机器学习20年没进步”,CMU学者炮轰AI第一大厂
- Google开放最大目标检测数据集,还要为它举办AI挑战赛
- mysql 开发进阶篇系列 23 应用层优化与查询缓存
- POJ -- 1573 Robot Motion
- memcmp与strcmp区别
- 网络技术独立的×××-SDN和三个问题