德陽北京網(wǎng)站建設服裝網(wǎng)站建設比較好
鶴壁市浩天電氣有限公司
2026/01/24 10:41:33
德陽北京網(wǎng)站建設,服裝網(wǎng)站建設比較好,赤峰網(wǎng)站設計,如何下載海外app【LetMeFly】3606.優(yōu)惠券校驗器#xff1a;分類 排序
力扣題目鏈接#xff1a;https://leetcode.cn/problems/coupon-code-validator/
給你三個長度為 n 的數(shù)組#xff0c;分別描述 n 個優(yōu)惠券的屬性#xff1a;code、businessLine 和 isActive。其中#xff0c;第 i 個…【LetMeFly】3606.優(yōu)惠券校驗器分類 排序力扣題目鏈接https://leetcode.cn/problems/coupon-code-validator/給你三個長度為n的數(shù)組分別描述n個優(yōu)惠券的屬性code、businessLine和isActive。其中第i個優(yōu)惠券具有以下屬性code[i]一個字符串表示優(yōu)惠券的標識符。businessLine[i]一個字符串表示優(yōu)惠券所屬的業(yè)務類別。isActive[i]一個布爾值表示優(yōu)惠券是否當前有效。當以下所有條件都滿足時優(yōu)惠券被認為是有效的code[i]不能為空并且僅由字母數(shù)字字符a-z、A-Z、0-9和下劃線_組成。businessLine[i]必須是以下四個類別之一electronics、grocery、pharmacy、restaurant。isActive[i]為true。返回所有有效優(yōu)惠券的標識符組成的數(shù)組按照以下規(guī)則排序先按照其businessLine的順序排序electronics、grocery、pharmacy、restaurant。在每個類別內再按照標識符的字典序升序排序。示例 1輸入code [SAVE20,,PHARMA5,SAVE20], businessLine [restaurant,grocery,pharmacy,restaurant], isActive [true,true,true,true]輸出[PHARMA5,SAVE20]解釋第一個優(yōu)惠券有效。第二個優(yōu)惠券的標識符為空無效。第三個優(yōu)惠券有效。第四個優(yōu)惠券的標識符包含特殊字符無效。示例 2輸入code [GROCERY15,ELECTRONICS_50,DISCOUNT10], businessLine [grocery,electronics,invalid], isActive [false,true,true]輸出[ELECTRONICS_50]解釋第一個優(yōu)惠券無效因為它未激活。第二個優(yōu)惠券有效。第三個優(yōu)惠券無效因為其業(yè)務類別無效。提示n code.length businessLine.length isActive.length1 n 1000 code[i].length, businessLine[i].length 100code[i]和businessLine[i]由可打印的 ASCII 字符組成。isActive[i]的值為true或false。解題方法分組 排序分組/分類似乎差不多暫不深究。使用4個數(shù)組分別存放合法的4類優(yōu)惠券。最后對4個數(shù)組分別按字符串字典序排序合并為一個數(shù)組并返回。如何判斷一個優(yōu)惠券是否合法active為truebusinessLine屬于4類之一code不為空且只由數(shù)組字母下劃線組成注意C中合并vector時若被合并vector后續(xù)無需再使用則可以使用make_move_iterator在內存上移動。時間復雜度O ( L log ? n ) O(Llog n)O(Llogn)其中L LL是合法code總字符數(shù)空間復雜度CO ( L ) O(L)O(L)AC代碼C/* * LastEditTime: 2025-12-13 22:42:29 */classSolution{private:inlineboolis_ok(strings){for(charc:s){if(c!_!isalnum(c)){returnfalse;}}return!s.empty();}public:vectorstringvalidateCoupons(vectorstringcode,vectorstringbusinessLine,vectorboolisActive){vectorstringelectronics,grocery,pharmacy,restaurant;for(inti0;icode.size();i){if(!isActive[i]){continue;}if(!is_ok(code[i])){continue;}if(businessLine[i]electronics){electronics.push_back(code[i]);}elseif(businessLine[i]grocery){grocery.push_back(code[i]);}elseif(businessLine[i]pharmacy){pharmacy.push_back(code[i]);}elseif(businessLine[i]restaurant){restaurant.push_back(code[i]);}}sort(electronics.begin(),electronics.end());sort(grocery.begin(),grocery.end());sort(pharmacy.begin(),pharmacy.end());sort(restaurant.begin(),restaurant.end());vectorstringans;ans.reserve(electronics.size()grocery.size()pharmacy.size()restaurant.size());ans.insert(ans.end(),make_move_iterator(electronics.begin()),make_move_iterator(electronics.end()));ans.insert(ans.end(),make_move_iterator(grocery.begin()),make_move_iterator(grocery.end()));ans.insert(ans.end(),make_move_iterator(pharmacy.begin()),make_move_iterator(pharmacy.end()));ans.insert(ans.end(),make_move_iterator(restaurant.begin()),make_move_iterator(restaurant.end()));returnans;}};同步發(fā)文于CSDN和我的個人博客原創(chuàng)不易轉載經(jīng)作者同意后請附上原文鏈接哦~千篇源碼題解已開源