【2019.4.5】
注意:可能会有重复的收件地址
第一次没考虑到这点,没过,后来看了书上的代码才发现还要判重
一开始打算把字符串编号,感觉自己已经魔怔了
深刻感觉到数据结构的重要性,选择好的组织数据的方法真的很重要
这题抄书真的很有挫败感,凌晨AC真的郁闷
分割字符串的写法:
void cut(const string& s, string& name, string& city)
{
int k = s.find('@'); //s[k]=='@'
name = s.substr(0, k); //0到k,不包括k
city = s.substr(k+1); //k+1到结尾
}
全部代码:
#include <iostream>
#include <map>
#include <set>
#include <vector>
#include <string>
using namespace std;
set<string> addr; //所有合法的收信地址,name@city
map<string, vector<string>> dest; //接收城市city-vector<name>
vector<string> city; //按照顺序,发给接收城市
set<string> vis; //判断收信地址是否重复
void cut(const string& s, string& name, string& city)
{
int k