漫漫程序媛进化鹿

领扣刷题记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();

    }
};
上一篇下一篇

猜你喜欢

热点阅读