题目连接:http://codeforces.com/problemset/problem/589/A
题目大意:给你n个字符串,请你将它分类并输出。其中不分字母大小写(即‘A’='a'),当字符串尾缀为@bmail.com时,则@符号前面的字符串如果有‘.’则消掉,如果有'+',则‘+’字符及之后到@之前的字符无效。看样例就明白了。
map知识点:map里面存的就是pair类型,其定义方式为map<第一个数据类型,第二个数据类型> name,第一个数据类型为map的数据,第二个数据类型为map数据的值,故压入map的一个简单方式可以这样:map[第一个数据类型数据]=第二个数据类型数据。map存储数据是有序的,故能快速找到map里面有没有存第一个数据,其寻找方式为name.find(第一个数据)==name.end();这个意思是如果没找到,find()便找到map的最后,表达式真值为1,表示未找到第一个数据。
这题的ac代码:
1 #include<iostream> 2 #include<cstring> 3 #include<vector> 4 #include<cstdio> 5 #include<map> 6 using namespace std; 7 char str[20005][105],str1[20005][105],per[]="@bmail.com",check[15]; 8 int main() 9 { 10 int n; 11 while(cin>>n) 12 { 13 int count=0; 14 getchar(); 15 vector<int> vec[20005]; 16 map<string,int> amap; 17 for(int i=0;i<n;i++) 18 { 19 scanf("%s",str[i]); 20 int len=strlen(str[i]); 21 for(int j=0;j<len;j++) 22 { 23 str1[i][j]=str[i][j]; 24 if(str[i][j]<='Z'&&str[i][j]>='A') 25 str1[i][j]-=('A'-'a'); 26 } 27 if(len<10) 28 check[0]='