cf589A 模拟
2015-10-19 10:31
183 查看
题目大意:解析电子邮箱地址并分组,不区分大小写,只有域名是bmail.com才有特殊规则。。。。。。。。
#include <bits/stdc++.h> using namespace std; struct node { string add; int id; friend bool operator <(node n1 , node n2) { if(n1.add == n2.add) return n1.id > n2.id; else return n1.add < n2.add; } }; string str[20005]; map<node , int>M; map<node , int>::iterator it; map<string , int>M2; map<string , int>::iterator it2; int main() { int n; while(scanf("%d" , &n) != EOF) { M.clear(); M2.clear(); char tmp[105]; for(int i = 0 ; i < n ; i ++) { scanf("%s" , tmp); str[i] = tmp; } for(int i = 0 ; i < n ; i ++) { string str2 = ""; int flag = 0; int flag2 = 0; int len = str[i].length(); int pos = str[i].find('@'); string str3 = str[i].substr(pos + 1, len); // cout << str3 << endl; int len3 = str3.length(); for(int j = 0 ; j < len3 ; j ++ ) { if(str3[j] >= 'A' && str3[j] <= 'Z') str2 += (str3[j] - 'A' + 'a'); else str2 += str3[j]; } // cout << str2 << endl; if(str2 == "bmail.com") flag2 = 1; str2 = ""; for(int j = 0 ; j < len ; j++) { if(str[i][j] == '@') flag = 1; if(!flag && str[i][j] == '.') { if(flag2) continue; else str2 += str[i][j]; } else if(!flag && str[i][j] == '+') { if(flag2 == 0) { if(str[i][j] >= 'A' && str[i][j] <= 'Z') str2 += (str[i][j] - 'A' + 'a'); else str2 += str[i][j]; } else { while(str[i][j] != '@') j++; j--; } } else if(!flag) { if(str[i][j] >= 'A' && str[i][j] <= 'Z') str2 += (str[i][j] - 'A' + 'a'); else str2 += str[i][j]; } if(flag) { if(str[i][j] >= 'A' && str[i][j] <= 'Z') str2 += (str[i][j] - 'A' + 'a'); else str2 += str[i][j]; } } // cout << str2 << endl; node temp; temp.add = str2; temp.id = i; M[temp]++; M2[str2]++; } printf("%d\n" , M2.size()); it = M.begin(); for(it2 = M2.begin(); it2 != M2.end() ; it2 ++) { printf("%d " , it2 -> second); for(int i = 0; it != M.end() , i < it2 -> second; it ++ , i ++) { node tt = it -> first; cout << str[tt.id]; if(i != it2 -> second - 1) printf(" "); } printf("\n"); } } }
相关文章推荐
- c总结6 --- 在字符串键值对中提取Value(指针学习5)
- 【zookeeper】集群安装配置问题
- 百度地图——拖拽地图定位
- PHP学习(wampServer+PhpStorm+XDebug)——环境相关配置参考(上)
- printf call statck for signal/coredump
- 代码块,静态代码块,构造函数调用顺序
- 任务池管理与执行器
- JS代码的加载
- Beans
- jquery插件layer
- Java基本概念:集合类(Collection)List/Set/Map的区别和联系
- 数据结构——查找之二叉排序树
- oracle 定时器
- 开发该选择Blocks还是Delegates
- 关于独立完成已有iOS项目《疯狂食材》总结
- php+mysql分页原理
- [国嵌笔记][021-022][ARM处理器工作模式]
- Github开源项目收藏
- xcode错误:"The application could not be verified."
- XiaoBiuBiu