Coupon Code Validator
You receive three arrays of length n that describe the properties of n coupons: code , businessLine , and isActive . The i^th coupon has:
-
code[i]: a text representing the coupon identifier. -
businessLine[i]: a text denoting the business category of the coupon. -
isActive[i]: a boolean indicating whether the coupon is currently active.
A coupon is considered valid if all of the following conditions hold:
-
code[i]is non-empty and consists only of alphanumeric characters (a-z, A-Z, 0-9) and underscores (_). -
businessLine[i]is one of the following four categories:"electronics","grocery","pharmacy","restaurant". -
isActive[i]is true .
Produce an array of the codes of all valid coupons, sorted first by their businessLine in the order: "electronics" , "grocery" , "pharmacy", "restaurant" , and then by code in lexicographical (ascending) order within each category.
Input: code = ["SAVE20","","PHARMA5","SAVE@20"], businessLine = ["restaurant","grocery","pharmacy","restaurant"], isActive = [true,true,true,true]
Output: ["PHARMA5","SAVE20"]
Explanation:
-
First coupon is valid.
-
Second coupon has empty code (invalid).
-
Third coupon is valid.
-
Fourth coupon has special character
@(invalid).
Input: code = ["GROCERY15","ELECTRONICS_50","DISCOUNT10"], businessLine = ["grocery","electronics","invalid"], isActive = [false,true,true]
Output: ["ELECTRONICS_50"]
Explanation:
-
First coupon is inactive (invalid).
-
Second coupon is valid.
-
Third coupon has invalid business line (invalid).
Constraints
n == code.length == businessLine.length == isActive.length1 <= n <= 1000 <= code[i].length, businessLine[i].length <= 100code[i]andbusinessLine[i]consist of printable ASCII characters.isActive[i]is eithertrueorfalse.
Did this problem appear in one of your interviews?
Responses stay private.
