领扣刷题记numUniqueEmails
2018-11-15 本文已影响18人
keeeeeenon
class Solution {
public:
int numUniqueEmails(vector<string>& emails)
//定义一个string容器,可以看作多维向量
// 即vector里面的元素是vector向量,而vector向量里面包含的是string类型字符串
{
int m=emails.size();
int head,tail,dis;
bool flag=false;
vector<string> results;
for (int i = 0; i <m ; i++)
{
string tmp=emails[i];//每次取一个email地址
head =tmp.find('+'); //在tmp字符串中查找+号并返回该位置
if (head!=-1)//如果存在+
{
tail = tmp.find('@');//@的位置
dis = tail - head;//+和@的距离 abc+abc@,+:3;@:7;7-3=4
tmp.erase(head, dis);//删掉从head开始的dis个元素
}
head=tmp.find('.');//是否有. 有的话全部删除
if(head!=-1)
{
tmp.erase(head,1);//删除.
head=tmp.find('.');
}
flag=true;
for(int j=0;j<results.size();j++) //检查results中是否有这样的email地址
{
if(tmp.compare(results[j])==0)
flag=false;
}
if(flag==true) //如果res中没有这样的email地址,存入results
results.push_back(tmp);
}
return results.size();
}
};