codeforces 21A Jabber ID
来源:互联网 发布:剑雨江湖仙器进阶数据 编辑:程序博客网 时间:2024/06/04 19:34
A. Jabber ID
time limit per test
0.5 secondmemory limit per test
256 megabytesinput
standard inputoutput
standard outputJabber ID on the national Berland service «Babber» has a form <username>@<hostname>[/resource], where
- <username> — is a sequence of Latin letters (lowercase or uppercase), digits or underscores characters «_», the length of<username> is between 1 and 16, inclusive.
- <hostname> — is a sequence of word separated by periods (characters «.»), where each word should contain only characters allowed for<username>, the length of each word is between 1 and 16, inclusive. The length of<hostname> is between 1 and 32, inclusive.
- <resource> — is a sequence of Latin letters (lowercase or uppercase), digits or underscores characters «_», the length of<resource> is between 1 and 16, inclusive.
The content of square brackets is optional — it can be present or can be absent.
There are the samples of correct Jabber IDs: mike@codeforces.com,007@en.codeforces.com/contest.
Your task is to write program which checks if given string is a correct Jabber ID.
Input
The input contains of a single line. The line has the length between 1 and 100 characters, inclusive. Each characters has ASCII-code between 33 and 127, inclusive.
Output
Print YES or NO.
Sample test(s)
Input
mike@codeforces.com
Output
YES
Input
john.smith@codeforces.ru/contest.icpc/12
Output
NO
细心,再细心一点!!!!!
#include<iostream> using namespace std; #include<string.h> int main() { char s[150]; int i,k,k1,a[200],s8,j,s1,s2,s3,s4,s5,s6,s7; while(cin>>s) {k=-1,k1=-1; for(i=0;i<strlen(s);i++) if(s[i]=='@')k=i; if(k==-1||k==strlen(s)-1)cout<<"NO\n";//判断是否有@或@为最后一位 else { if(k<1||k>16)s8=0; else s8=1;//判断<username>的大小是否为1~16; for(i=k;i<strlen(s);i++) if(s[i]=='/'){k1=i;break;} for(i=0;i<k;i++) if(s[i]>='0'&&s[i]<='9'||s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z'||s[i]=='_') s1=1; else {s1=0;break;}//判断<username>的字符是否正确; if(k1==-1)//判断@后面是否存在‘/’; { if(strlen(s)-k-1>32) s4=0; else s4=1;//判断<hostname>的大小是否为1~32; j=0;s2=1; for(i=k;i<strlen(s);i++) if(s[i]=='.'||s[i]==0||s[i]=='@') a[j++]=i; for(i=0;i<j-1;i++) if(a[i+1]-a[i]-1<1||a[i+1]-a[i]-1>16) s2=0;//判断每两个‘.’之间的字符串大小是否为1~16; for(i=k+1;i<strlen(s);i++) if(s[i]!='.') if(s[i]>='0'&&s[i]<='9'||s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z'||s[i]=='_') s3=1; else {s3=0;break;}//判断<hostname>的字符是否正确; s7=1; for(i=k;i<strlen(s);i++) if(s[i]=='.') { if(s[i+1]>='0'&&s[i+1]<='9'||s[i+1]>='A'&&s[i+1]<='Z'||s[i+1]>='a'&&s[i+1]<='z'||s[i+1]=='_') s7=1; else {s7=0; break;} }//判断‘.’后面是否有字符,若无‘.’,则也s7=1; // cout<<s1<<" "<<s2<<" "<<s3<<" "<<s4<<" "<<s7<<" "<<s8<<endl; if(s1&&s2&&s3&&s4&&s7&&s8)cout<<"YES\n"; else cout<<"NO\n"; } else { int f; if(k1-k-1>32) s4=0; else s4=1;//判断<hostname>的大小是否为1~32; j=0;s2=1; s7=1; for(i=k;i<k1;i++) if(s[i]=='.') { if(s[i+1]>='0'&&s[i+1]<='9'||s[i+1]>='A'&&s[i+1]<='Z'||s[i+1]>='a'&&s[i+1]<='z'||s[i+1]=='_') s7=1; else {s7=0; break;} }//判断‘.’后面是否有字符,若无‘.’,则也s7=1; for(i=k;i<k1;i++) if(s[i]=='.'||s[i]==0||s[i]=='@') a[j++]=i; for(i=0;i<j-1;i++) if(a[i+1]-a[i]-1<1||a[i+1]-a[i]-1>16) s2=0;//判断每两个‘.’之间的字符串大小是否为1~16; for(i=k+1;i<k1;i++) if(s[i]!='.') if(s[i]>='0'&&s[i]<='9'||s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z'||s[i]=='_') s3=1; else {s3=0;break;}//判断<hostname>的字符是否正确; if(strlen(s)-k1-1<1||strlen(s)-k1-1>16)s5=0; else s5=1;//判断<resource>的大小是否为1~16; for(i=k1+1;i<strlen(s);i++) if(s[i]>='0'&&s[i]<='9'||s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z'||s[i]=='_') s6=1; else {s6=0;break;}//判断<resource>的字符是否正确; // cout<<s1<<" "<<s2<<" "<<s3<<" "<<s4<<" "<<s5<<" "<<s6<<" "<<s7<<" "<<s8<<endl; if(s8&&s1&&s2&&s3&&s4&&s5&&s6&&s7) cout<<"YES\n"; else cout<<"NO\n"; } } } return 0; }
0 0
- codeforces 21A Jabber ID
- CodeForces 21A Jabber ID (简单题)
- 【模拟+读入】#21 A. Jabber ID
- A. Jabber ID
- Jabber ID(codeforce)
- Jabber
- jabber
- Jabber
- jabber
- jabber
- Jabber
- codeforces Educational Codeforces Round 21 A
- Building a Jabber Client for iOS: Server Setup
- Building a Jabber Client for iOS: Interface Setup
- Building a Jabber Client for iOS: XMPP Setup
- Building a Jabber Client for iOS: Server Setup
- Building a Jabber Client for iOS: Interface Setup
- Building a Jabber Client for iOS: XMPP Setup
- uva 442 矩阵链乘
- Java中的容器
- 学习Android(1)
- print操作及重定向
- uva 10917 - Walk Through the Forest(最短路+记忆化)
- codeforces 21A Jabber ID
- 函数和方法
- SQL 中关于groupby的信息
- 数组和集合小总结
- OCiOS开发:汉字转拼音
- debian8对指纹,触摸,摄像头的支持和使用
- 类、对象、包
- HDOJ 4277 USACO ORZ 搜索+剪枝
- 惠普软件试训第一阶段成果展示