Введение
Разве вы не ненавидите, когда кто-то загружает понравившийся вам альбом на YouTube, но описание содержит только список треков ? Так:
1. Everything in Its Right Place - 4:11
2. Kid A - 4:44
3. The National Anthem - 5:50
4. How to Disappear Completely - 5:55
5. Treefingers - 3:42
6. Optimistic - 5:16
7. In Limbo - 3:31
8. Idioteque - 5:09
9. Morning Bell - 4:29
10. Motion Picture Soundtrack - 6:59
Теперь вы не знаете, когда начинается Morning Bell, если вы не суммируете кучу раз в своей голове! Обычно приходит какая-то добрая душа и оставляет удобный график в разделе (страшных) комментариев, который выглядит примерно так:
(0:00:00) Everything in Its Right Place
(0:04:11) Kid A
(0:08:55) The National Anthem
(0:14:45) How to Disappear Completely
(0:20:40) Treefingers
(0:24:22) Optimistic
(0:29:38) In Limbo
(0:33:09) Idioteque
(0:38:18) Morning Bell
(0:42:47) Motion Picture Soundtrack
Спецификация
Ваша задача - написать программу или функцию, которая принимает список дорожек в качестве входных данных и таблицу времени в качестве выходных данных.
- Вы можете прочитать входные данные из STDIN, или строку аргумента, или список аргументов строки. Точно так же вы можете распечатать вывод в STDOUT, или вернуть строку, или вернуть список строк. В противном случае делайте все, что имеет смысл для вашего языка.
Вы можете предположить, что каждая строка ввода имеет формат
(\d+)\. [A-Za-z0-9 ]{1,100} - (\d+):(\d\d)
. Для регулярных выражений это, по сути, означает, что вы можете предположить, что каждая строка хорошо отформатирована (как указано выше), а названия песен состоят только из буквенно-цифровых символов и пробелов ASCII и имеют длину не более 100 байт.- Длина трека всегда не меньше
0:01
и не больше59:59
. - Номера треков увеличиваются в порядке, начиная с
1
и считая не более чем99
. - Общая длина альбома не более
9:59:59
.
Это код-гольф , поэтому выигрывает самый короткий код (в байтах).
Прецедент
Ваша программа должна правильно выполнить преобразование, представленное во введении ( Ребенок Radiohead ). Вот более крупный тестовый сценарий ( Иллинойс Суфьяна Стивенса 1 ) с длинными строками, с которыми ваша программа также должна работать:
1. Concerning the UFO Sighting Near Highland Illinois - 2:08
2. The Black Hawk War - 2:14
3. Come On Feel the Illinoise - 6:45
4. John Wayne Gacy Jr - 3:19
5. Jacksonville - 5:24
6. A Short Reprise for Mary Todd Who Went Insane but for Very Good Reasons - 0:47
7. Decatur or Round of Applause for Your Stepmother - 3:03
8. One Last Whoo Hoo for the Pullman - 0:06
9. Chicago - 6:04
10. Casimir Pulaski Day - 5:53
11. To the Workers of the Rock River Valley Region - 1:40
12. The Man of Metropolis Steals Our Hearts - 6:17
13. Prairie Fire That Wanders About - 2:11
14. A Conjunction of Drones Simulating the Way - 0:19
15. The Predatory Wasp of the Palisades Is Out to Get Us - 5:23
16. They Are Night Zombies They Are Neighbors They Have Come Back from the Dead Ahhhh - 5:09
17. Lets Hear That String Part Again Because I Dont Think They Heard It All the Way Out in Bushnell - 0:40
18. In This Temple as in the Hearts of Man for Whom He Saved the Earth - 0:35
19. The Seers Tower - 3:53
20. The Tallest Man the Broadest Shoulders - 7:02
21. Riffs and Variations on a Single Note - 0:46
22. Out of Egypt into the Great Laugh of Mankind and I Shake the Dirt from My Sandals as I Run - 4:21
Правильный вывод:
(0:00:00) Concerning the UFO Sighting Near Highland Illinois
(0:02:08) The Black Hawk War
(0:04:22) Come On Feel the Illinoise
(0:11:07) John Wayne Gacy Jr
(0:14:26) Jacksonville
(0:19:50) A Short Reprise for Mary Todd Who Went Insane but for Very Good Reasons
(0:20:37) Decatur or Round of Applause for Your Stepmother
(0:23:40) One Last Whoo Hoo for the Pullman
(0:23:46) Chicago
(0:29:50) Casimir Pulaski Day
(0:35:43) To the Workers of the Rock River Valley Region
(0:37:23) The Man of Metropolis Steals Our Hearts
(0:43:40) Prairie Fire That Wanders About
(0:45:51) A Conjunction of Drones Simulating the Way
(0:46:10) The Predatory Wasp of the Palisades Is Out to Get Us
(0:51:33) They Are Night Zombies They Are Neighbors They Have Come Back from the Dead Ahhhh
(0:56:42) Lets Hear That String Part Again Because I Dont Think They Heard It All the Way Out in Bushnell
(0:57:22) In This Temple as in the Hearts of Man for Whom He Saved the Earth
(0:57:57) The Seers Tower
(1:01:50) The Tallest Man the Broadest Shoulders
(1:08:52) Riffs and Variations on a Single Note
(1:09:38) Out of Egypt into the Great Laugh of Mankind and I Shake the Dirt from My Sandals as I Run
Leaderboard
Чтобы ваш счет отображался на доске, он должен быть в следующем формате:
# Language, Bytes
1. Извиняюсь перед Суфджаном, чьи удивительные названия треков мне пришлось немного исказить, чтобы они соответствовали простому формату, которым ограничена эта проблема.
(h:mm:ss) Track Name
, сопровождаемый немедленно новой строкой .Ответы:
CJam,
605755 байтСпасибо Sp3000 за сохранение 2 байта.
Проверьте это здесь.
объяснение
источник
Perl, (93 символа плюс
-p
) 94 байтаБежать:
источник
C ++,
212209202189 байтC ++ потому что .. почему бы и нет?
Прямой эфир:
212209202189источник
Python 2,
170160 байтПрошло много времени с тех пор, как я сделал гольф, надеюсь, это не так уж плохо: P
Входные данные должны быть заключены в кавычки и разделены символами новой строки, например:
источник
%d
за счетчик часов (если я правильно понимаю правила!) Для-2
!input
кraw_input
), чтобы принять точный формат; в противном случае я считаю, что это недопустимо, так как предполагает наличие строк в другом формате.Гема, 151 персонажа
Образец прогона:
источник
Python 2,
207206 байтиспользование
источник
raw_input
существует только в Python 2.awk,
119101 байтЭто намного дольше, чем я хотел. Проблема в том%H
, что часы не форматируются так, как запрошено, поэтому мне нужно было самому рассчитать часы.Я тупой. Результаты
strftime
оказались неверными, потому что мне нужно было указать время UTC. Это отрезало 18 байтов!119-байтовая версия
источник