1. 程式人生 > >leet code929獨特的郵件c++寫法 24ms,

leet code929獨特的郵件c++寫法 24ms,

int numUniqueEmails(vector<string>& emails) {
            int m=emails.size();
            int first,last,dst;
            bool flag=false;
            vector<string> res;
            for(int i=0;i<m;i++)
            {
                string name   = emails[i].substr(0, emails[i].find("@"));//把郵件拆分成兩部分,姓名和域名
                string domain = emails[i].substr(emails[i].find("@"));
                first=name.find('+');   //查詢是否有+號
                if(first!=-1)//如果有+號 刪除+到@的內容
                {
                      //@字元下標
                    dst=name.size()-first;    //@到+號之間有幾個字元
                    name.erase(first,dst);
                }
                first = name.rfind('.',first);
                while (first != string::npos)//如果找到.
                {
                    name.erase(first, 1);
                    first = name.rfind('.', first);
                }
                flag=true;
                string temp = name+domain;
                for(int j=0;j<res.size();j++)   //檢查res中是否有這樣的email地址
                {
                    if(temp.compare(res[j])==0)
                        flag=false;
                }
                if(flag==true)  //如果res中沒有這樣的email地址,存入res
                    res.push_back(temp);
            }
            return res.size();
        }