leet code929獨特的郵件c++寫法 24ms,
阿新 • • 發佈:2018-12-15
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(); }