Twój program / funkcja itp. Zajmie 2 wejścia. Pierwszą będzie lista osób, które przyszły na moje przyjęcie i kiedy. Przykład:
Kevin 13:02
Ruby 5
Sam 3
Lisa 6
Bob 12
Co to znaczy? Oznacza to, że Kevin najpierw przybył na moją imprezę (o 13:02, 24 godziny), potem Ruby 5 minut później, potem Sam 3 minuty później, a Lisa 6 minut później, a ostatni Bob 12 minut później.
Drugie wejście będzie, kiedy rozpocznie się moja impreza. Przykład:
13:15
(Czas 24-godzinny). Twój wynik musi być listą osób, które się spóźniły. (Każdy dokładnie na czas jest w porządku.) Przykładowe obliczenia (na przykład, nie wysyłaj ich)
Kevin 13:02
Ruby 13:07
Sam 13:10
Lisa 13:16
Bob 13:28
Lisa i Bob przybyli później 13:15
, dlatego ten program powinien wypisać „Lisa, Bob”.
Założenia wejściowe
- Wejście 1 zawsze będzie nazwą (regex
[A-Z][a-z]*
), następnie spacją, następnie 24-godzinnym czasem w formiehours:minutes
w pierwszym wierszu, a następnie nazwą, spacją i dodatnią liczbą całkowitą (liczba minut później) w następnych wierszach . Zawsze będzie co najmniej 1 linia. - Jeśli chcesz, możesz wprowadzić 1 z dowolnym innym znakiem zamiast podziału linii.
- Wejście 2 będzie miało format
hours:minutes
. - Możesz wziąć swoje dane wejściowe jako jeden ciąg oddzielony dowolnym znakiem, jeśli chcesz. To jest opcjonalne.
- Nie martw się o dzień crossovera. Moje imprezy nigdy nie później
23:59
.
Reguły wyjściowe
- Dane wyjściowe mogą być wartością zwracaną przez funkcję lub ciągiem echa do STDIN, pliku itp. Musisz zwrócić ciąg znaków lub tablicę / listę.
- Jeśli zwrócisz ciąg, musi to być każda osoba, która się spóźniła (kolejność nie ma znaczenia), oddzielone dowolnym niealfanumerycznym separatorem.
- Jeśli zwrócisz tablicę / listę, musi to być lista wszystkich spóźnionych.
(regex [A-Z][a-z]*
)” Czy to sugeruje, że nazwy mogą być puste?
23:59
?