百练4015:邮箱验证题解

来源:互联网 发布:李氏筋骨散淘宝 编辑:程序博客网 时间:2024/06/08 08:31

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;}