Determine if Two Events Have Conflict

easy intervals overlap string parsing

Problem

You are given two inclusive events on the same day as event1 = [start1, end1] and event2 = [start2, end2], where each time is a valid 24-hour string HH:MM. A conflict happens when the two events share at least one common moment. Return true if they conflict, otherwise false.

Inputevent1 = ["01:00","02:00"], event2 = ["01:20","03:00"]
Outputtrue
The events intersect from 01:20 to 02:00.
Inputevent1 = ["10:00","11:00"], event2 = ["14:00","15:00"]
Outputfalse
Event 1 ends at 11:00, long before event 2 starts at 14:00 — no shared moment.

def have_conflict(event1, event2):
    def to_min(t):
        h, m = t.split(":")
        return int(h) * 60 + int(m)
    s1, e1 = to_min(event1[0]), to_min(event1[1])
    s2, e2 = to_min(event2[0]), to_min(event2[1])
    return s1 <= e2 and s2 <= e1
function haveConflict(event1, event2) {
  const toMin = (t) => {
    const [h, m] = t.split(":");
    return Number(h) * 60 + Number(m);
  };
  const s1 = toMin(event1[0]), e1 = toMin(event1[1]);
  const s2 = toMin(event2[0]), e2 = toMin(event2[1]);
  return s1 <= e2 && s2 <= e1;
}
boolean haveConflict(String[] event1, String[] event2) {
    int s1 = toMin(event1[0]), e1 = toMin(event1[1]);
    int s2 = toMin(event2[0]), e2 = toMin(event2[1]);
    return s1 <= e2 && s2 <= e1;
}

int toMin(String t) {
    String[] p = t.split(":");
    return Integer.parseInt(p[0]) * 60 + Integer.parseInt(p[1]);
}
int toMin(string t) {
    return stoi(t.substr(0, 2)) * 60 + stoi(t.substr(3, 2));
}

bool haveConflict(vector<string>& event1, vector<string>& event2) {
    int s1 = toMin(event1[0]), e1 = toMin(event1[1]);
    int s2 = toMin(event2[0]), e2 = toMin(event2[1]);
    return s1 <= e2 && s2 <= e1;
}
Time: O(1) Space: O(1)