Problem Statement
In the middle of a flight, John wanted to know what time it was, so he asked Brus to check the clock. To Brus' surprise, the Bermuda Triangle had caused the clock to malfunction, and some of the characters on the display were unrecognizable. You are given the clock's display as a
Definition
- Class:
- TheTriangleBothDivs
- Method:
- fix
- Parameters:
- String
- Returns:
- String
- Method signature:
- String fix(String time)
- (be sure your method is public)
Notes
- String s1 comes before String s2 lexicographically if s1 has a lexicographically smaller character at the first index where they differ.
Constraints
- time will contain exactly 11 characters.
- time will be formatted "xx:xx GMTsx" (quotes for clarity).
- Each x in time will be a digit ('0'-'9') or '?'.
- The s in time will be '-','+' or '?'.
- time will represent a valid clock display (as described in the statement) where zero or more of the digits or the '-' or '+' sign have been replaced by '?' characters.
Examples
"17:45 GMT-4"
Returns: "21:45"
"16:?? GMT??"
Returns: "00:00"
There are many possible times the clock could be displaying, for example: "16:00 GMT+8", "16:35 GMT-9", etc. It is possible to choose "00" minutes and the GMT-8 time zone to yield time "00:00" which is the lexicographically first result.
"?1:34 GMT-9"
Returns: "06:34"
"??:?? GMT??"
Returns: "00:00"
"00:?? GMT-?"
Returns: "01:00"
Beware of GMT-0
"00:?? GMT+?"
Returns: "00:00"
"?5:?? GMT+1"
Returns: "04:00"
"1?:45 GMT+?"
Returns: "01:45"
"??:11 GMT-9"
Returns: "00:11"
"??:11 GMT-8"
Returns: "00:11"
"??:11 GMT-7"
Returns: "00:11"
"??:11 GMT+5"
Returns: "00:11"
"??:11 GMT+6"
Returns: "00:11"
"??:11 GMT+9"
Returns: "00:11"
"18:16 GMT?5"
Returns: "13:16"
"19:16 GMT?5"
Returns: "00:16"
"01:2? GMT+8"
Returns: "17:20"
"??:?? GMT?3"
Returns: "00:00"
"?0:5? GMT??"
Returns: "00:50"
"??:46 GMT?9"
Returns: "00:46"
"1?:1? GMT-?"
Returns: "00:10"
"0?:29 GMT+9"
Returns: "00:29"
"17:?? GMT-1"
Returns: "18:00"
"06:?4 GMT?9"
Returns: "15:04"
"10:5? GMT??"
Returns: "01:50"
"?4:?? GMT?8"
Returns: "06:00"
"??:?6 GMT??"
Returns: "00:06"
"??:17 GMT??"
Returns: "00:17"
"??:4? GMT??"
Returns: "00:40"
"??:1? GMT+?"
Returns: "00:10"
"??:?0 GMT?6"
Returns: "00:00"
"?3:20 GMT?8"
Returns: "05:20"
"??:?? GMT??"
Returns: "00:00"
"??:1? GMT+9"
Returns: "00:10"
"1?:?? GMT?5"
Returns: "00:00"
"??:?? GMT+0"
Returns: "00:00"
"1?:4? GMT?2"
Returns: "08:40"
"22:?? GMT-6"
Returns: "04:00"
"??:?? GMT-?"
Returns: "00:00"
"??:?? GMT-?"
Returns: "00:00"
"?2:?? GMT?7"
Returns: "05:00"
"?6:?9 GMT-9"
Returns: "01:09"
"0?:?4 GMT?6"
Returns: "00:04"
"0?:27 GMT+?"
Returns: "00:27"
"1?:18 GMT-6"
Returns: "00:18"
"14:40 GMT-?"
Returns: "15:40"
"01:57 GMT??"
Returns: "00:57"
"?1:?6 GMT?7"
Returns: "04:06"
"0?:?2 GMT+8"
Returns: "00:02"
"16:?5 GMT+3"
Returns: "13:05"
"18:10 GMT+?"
Returns: "09:10"
"?6:?? GMT?1"
Returns: "05:00"
"1?:4? GMT??"
Returns: "00:40"
"?2:21 GMT?3"
Returns: "01:21"
"?6:?9 GMT?5"
Returns: "01:09"
"1?:5? GMT-?"
Returns: "00:50"
"1?:2? GMT+6"
Returns: "04:20"
"?7:0? GMT+7"
Returns: "00:00"
"11:39 GMT??"
Returns: "02:39"
"03:?1 GMT-3"
Returns: "06:01"
"??:?7 GMT-7"
Returns: "00:07"
"1?:?? GMT-1"
Returns: "11:00"
"??:5? GMT+1"
Returns: "00:50"
"22:?6 GMT-1"
Returns: "23:06"
"0?:0? GMT?1"
Returns: "00:00"
"?1:?? GMT+9"
Returns: "02:00"
"??:44 GMT+?"
Returns: "00:44"
"2?:4? GMT?3"
Returns: "00:40"
"?7:02 GMT??"
Returns: "00:02"
"07:3? GMT+5"
Returns: "02:30"
"0?:32 GMT+5"
Returns: "00:32"
"??:?5 GMT-?"
Returns: "00:05"
"??:40 GMT??"
Returns: "00:40"
"??:12 GMT??"
Returns: "00:12"
"22:?2 GMT?8"
Returns: "06:02"
"0?:0? GMT??"
Returns: "00:00"
"2?:?0 GMT??"
Returns: "00:00"
"??:?? GMT+2"
Returns: "00:00"
"05:01 GMT-?"
Returns: "06:01"
"1?:43 GMT??"
Returns: "00:43"
"?2:08 GMT+8"
Returns: "04:08"
"15:?? GMT??"
Returns: "00:00"
"1?:2? GMT??"
Returns: "00:20"
"??:1? GMT+?"
Returns: "00:10"
"0?:?? GMT?8"
Returns: "00:00"
"??:?? GMT-8"
Returns: "00:00"
"?3:5? GMT+?"
Returns: "00:50"
"?2:1? GMT?1"
Returns: "01:10"
"?2:5? GMT+9"
Returns: "03:50"
"2?:51 GMT?3"
Returns: "00:51"
"??:5? GMT?8"
Returns: "00:50"
"?3:0? GMT-?"
Returns: "00:00"
"1?:4? GMT+3"
Returns: "07:40"
"02:?? GMT-1"
Returns: "03:00"
"?6:13 GMT+?"
Returns: "00:13"
"??:?6 GMT+?"
Returns: "00:06"
"1?:5? GMT??"
Returns: "00:50"
"02:05 GMT?7"
Returns: "09:05"
"09:?9 GMT-1"
Returns: "10:09"
"0?:5? GMT??"
Returns: "00:50"
"?8:?4 GMT+0"
Returns: "08:04"
"0?:40 GMT+?"
Returns: "00:40"
"1?:11 GMT?5"
Returns: "00:11"
"05:0? GMT+7"
Returns: "22:00"
"0?:?6 GMT??"
Returns: "00:06"
"??:10 GMT??"
Returns: "00:10"
"??:53 GMT+?"
Returns: "00:53"
"?4:?? GMT+?"
Returns: "00:00"
"?7:00 GMT??"
Returns: "00:00"
"03:4? GMT+8"
Returns: "19:40"
"?2:2? GMT+7"
Returns: "05:20"
"??:55 GMT??"
Returns: "00:55"
"1?:?? GMT-6"
Returns: "00:00"
"23:?0 GMT+3"
Returns: "20:00"
"1?:55 GMT??"
Returns: "00:55"
"?1:39 GMT??"
Returns: "00:39"
"?8:?? GMT??"
Returns: "00:00"
"?9:?? GMT??"
Returns: "00:00"
"2?:?4 GMT?2"
Returns: "00:04"
"?9:?? GMT-1"
Returns: "10:00"
"?9:?3 GMT?7"
Returns: "02:03"
"00:00 GMT-?"
Returns: "01:00"
"?4:00 GMT?1"
Returns: "03:00"
"23:23 GMT-9"
Returns: "08:23"
"00:01 GMT-?"
Returns: "01:01"
"12:00 GMT??"
Returns: "03:00"
"?1:3? GMT?9"
Returns: "02:30"
"12:34 GMT??"
Returns: "03:34"
"12:2? GMT-?"
Returns: "13:20"
"0?:?? GMT-?"
Returns: "01:00"
"00:42 GMT-?"
Returns: "01:42"
"01:23 GMT-?"
Returns: "02:23"
"11:00 GMT-?"
Returns: "12:00"
"23:59 GMT+0"
Returns: "23:59"
"23:45 GMT-?"
Returns: "00:45"
"12:00 GMT-?"
Returns: "13:00"
"10:00 GMT??"
Returns: "01:00"
"14:?? GMT-?"
Returns: "15:00"
"12:45 GMT?4"
Returns: "08:45"
"01:00 GMT-?"
Returns: "02:00"
"0?:?9 GMT-?"
Returns: "01:09"
"12:34 GMT-?"
Returns: "13:34"
"13:13 GMT??"
Returns: "04:13"
"07:59 GMT+?"
Returns: "00:59"
"?3:?4 GMT+8"
Returns: "05:04"
"13:13 GMT+?"
Returns: "04:13"
"2?:00 GMT+1"
Returns: "19:00"
"?7:45 GMT-4"
Returns: "11:45"
"?6:00 GMT?1"
Returns: "05:00"
"12:12 GMT??"
Returns: "03:12"
"17:48 GMT-4"
Returns: "21:48"
"10:12 GMT-?"
Returns: "11:12"
"?4:11 GMT+0"
Returns: "04:11"
"14:45 GMT-?"
Returns: "15:45"
"00:45 GMT-?"
Returns: "01:45"
"13:13 GMT-?"
Returns: "14:13"
"10:00 GMT-?"
Returns: "11:00"
"1?:4? GMT+?"
Returns: "01:40"
"?5:0? GMT?0"
Returns: "05:00"
"10:?3 GMT??"
Returns: "01:03"
"?4:?0 GMT-?"
Returns: "05:00"
"07:1? GMT+9"
Returns: "22:10"
"12:45 GMT??"
Returns: "03:45"
"01:34 GMT+9"
Returns: "16:34"
"00:00 GMT+0"
Returns: "00:00"
"2?:00 GMT+0"
Returns: "20:00"
"17:45 GMT+4"
Returns: "13:45"
"23:30 GMT+0"
Returns: "23:30"
"00:?5 GMT-?"
Returns: "01:05"
"1?:?1 GMT?7"
Returns: "00:01"
"?4:4? GMT-3"
Returns: "07:40"
"?4:59 GMT-9"
Returns: "13:59"
"?8:00 GMT+0"
Returns: "08:00"
"03:45 GMT?2"
Returns: "01:45"
"14:00 GMT??"
Returns: "05:00"
"?5:11 GMT+1"
Returns: "04:11"
"2?:3? GMT-?"
Returns: "00:30"
"00:01 GMT+9"
Returns: "15:01"
"1?:?? GMT?4"
Returns: "06:00"
"00:00 GMT+?"
Returns: "00:00"
"??:00 GMT-1"
Returns: "00:00"
"01:01 GMT+5"
Returns: "20:01"
"10:45 GMT?2"
Returns: "08:45"
"13:?9 GMT-?"
Returns: "14:09"
"00:00 GMT??"
Returns: "00:00"
"?1:00 GMT+1"
Returns: "00:00"
"2?:23 GMT+0"
Returns: "20:23"
"00:00 GMT+8"
Returns: "16:00"
"1?:?2 GMT-?"
Returns: "00:02"
"00:59 GMT-1"
Returns: "01:59"
"13:?? GMT-?"
Returns: "14:00"