4015:邮箱验证
查看提交统计提示提问
总时间限制:
1000ms
内存限制:
65536kB
描述
POJ 注册的时候需要用户输入邮箱,验证邮箱的规则包括:
1)有且仅有一个'@'符号
2)'@'和'.'不能出现在字符串的首和尾
3)'@'之后至少要有一个'.',并且'@'不能和'.'直接相连
满足以上3条的字符串为合法邮箱,否则不合法,
编写程序验证输入是否合法
输入
输入包含若干行,每一行为一个代验证的邮箱地址,长度小于100
输出
每一行输入对应一行输出
如果验证合法,输出 YES
如果验证非法:输出 NO
样例输入
.a@b.com
pku@edu.cn
cs101@gmail.com
cs101@gmail
样例输出
NO
YES
YES
NO
查看 提交 统计 提示 提问
代码:
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
bool judge(string str){
if(count(str.begin(),str.end(),'@') != 1) return false;
if(str[0] == '@' || str[0] == '.' || str.back() == '@' || str.back() == '.')
return false;
size_t pos = str.find('@');
if(str[pos + 1] == '.' || str[pos - 1] == '.') return false;
return count(str.begin() + pos, str.end(),'.') >= 1;
}
int main(){
string str;
while(cin>>str){
if(judge(str)) puts("YES");
else puts("NO");
}
return 0;
}