Check Point Smart-1 can group endpoint alerts by signature. Given an ordered list of alert signatures and a required multiset of signatures, return the shortest contiguous segment that contains every required signature with the required multiplicity.
If multiple segments have the same minimum length, return the one with the smallest starting index. Return [start, end] using inclusive indices, or [] if no valid segment exists.
Implement minimum_alert_window(alerts, required), where alerts and required are lists of strings. The result is a list of two integers, [start, end], or an empty list. Signature matching is case-sensitive.
def minimum_alert_window(alerts, required):