3606. 优惠券校验器
题目链接:3606. 优惠券校验器
代码如下:
classSolution{public:vector<string>validateCoupons(vector<string>&code,vector<string>&businessLine,vector<bool>&isActive){vector<string>groups[4];for(inti=0;i<code.size();i++){autoit=BUSINESS_LINE_TO_CATEGORY.find(businessLine[i]);if(it!=BUSINESS_LINE_TO_CATEGORY.end()&&isActive[i]&&is_valid(code[i])){groups[it->second].push_back(code[i]);}}vector<string>res;for(auto&g:groups){ranges::sort(g);res.insert(res.end(),g.begin(),g.end());}returnres;}private:// 检查字符串是否为空,只包含字母,数字和下划线boolis_valid(conststring&s){for(charc:s){if(c!='_'&&!isalnum(c)){returnfalse;}}return!s.empty();}unordered_map<string,int>BUSINESS_LINE_TO_CATEGORY={{"electronics",0},{"grocery",1},{"pharmacy",2},{"restaurant",3}};};