5313 [JL]判断邮箱地址 升级版
2016-09-18 09:52
190 查看
5313 [JL]判断邮箱地址 升级版
时间限制: 1 s空间限制: 1000 KB
题目等级 : 黄金 Gold
题解
查看运行结果
题目描述 Description
正确的邮箱地址格式要求:
1.格式:用户名@服务器名.后缀域名”
2.用户名、服务器名、后缀域名均由字母、英文与下划线组成
输入一个邮箱地址判断它是不是合法的邮箱地址。
输入格式:
1.不会出现多节域名(比如:123@sina.com.cn 这种不会出现)
2.不会出现中文字符
输入描述 Input Description
输入仅一行(Mail.in):
为疑似邮箱的字符串
输出描述 Output Description
输出仅一行(Mail.out):
是邮箱,输出“yes”,
不是则输出“no”(不包括引号)
(样例输出中,括号中的内容不用输出)
样例输入 Sample Input
输入样例#1:
45678sss@.cn
输入样例#2:
hello@microsoft.cn
输入样例#3:
luogu.luogu@
输入样例#4:
#$%@sina.com
样例输出 Sample Output
输出样例#1:
no (没有服务器名)
输出样例#2:
yes (符合要求)
输出样例#3:
no (“@”位置不对,没有后缀名)
输出样例#4:
no (无效字符)
数据范围及提示 Data Size & Hint
邮箱字符串长度<=255
分类标签 Tags 点此展开
暂无标签[b]题解:[/b]
模拟即可
AC代码:
#include<cstdio> #include<cstring> using namespace std; char s[300]; inline bool judge(char &ch){ return (ch>='A'&&ch<='Z')||(ch>='a'&&ch<='z')||(ch>='0'&&ch<='9')||(ch=='_'); } int main(){ scanf("%s",s); int len=strlen(s); int ai=0;int flag=0; for(int i=0;i<len;i++) if(s[i]=='@'){ai=i;break;} if(!ai){puts("no");return 0;} for(int i=0;i<ai;i++) if(!judge(s[i])){puts("no");return 0;} if(!judge(s[ai+1])){puts("no");return 0;} for(int i=ai+2;i<len;i++) if(s[i]=='.'){ flag=1; if(!judge(s[i+1])){puts("no");return 0;} } if(!flag){puts("no");return 0;} puts("yes"); return 0; }
相关文章推荐
- 远哥教你MuleESB系列视频教程
- 修改导航栏的背景色和字体颜色
- == 和===的区别
- 浅谈js中的引用和复制(传值和传址)
- Java并发编程:volatile关键字解析
- iOS 动画 - 波纹 声波 水波
- js split 切分字符串
- 11 吐司 Toast 代码案例
- JAVA之面向对象(五)
- 正则表达式
- 正则表达式
- unity Shader的Properties 类型
- Android Touch事件传递机制通俗讲解
- java中byte数组与int,long,short间的转换
- 面向对象概述(课堂笔记)
- 11 吐司 Toast 代码案例
- C语言中字符串常量到底存在哪了?
- 最大流模版
- JavaWeb中利用ModelAndView 和SpringMVC中<c:forEach>结合进行数据渲染
- ORA-12519: TNS:no appropriate service handler found 解决