Кратчайший ответ выигрывает.
Это нужно отсортировать и в 24ч времени. Последняя строка не имеет запятой.
Вывод должен быть следующим:
'00:00',
'00:30',
'01:00',
'01:30',
'02:00',
'02:30',
'03:00',
'03:30',
'04:00',
'04:30',
'05:00',
'05:30',
'06:00',
'06:30',
'07:00',
'07:30',
'08:00',
'08:30',
'09:00',
'09:30',
'10:00',
'10:30',
'11:00',
'11:30',
'12:00',
'12:30',
'13:00',
'13:30',
'14:00',
'14:30',
'15:00',
'15:30',
'16:00',
'16:30',
'17:00',
'17:30',
'18:00',
'18:30',
'19:00',
'19:30',
'20:00',
'20:30',
'21:00',
'21:30',
'22:00',
'22:30',
'23:00',
'23:30'
code-golf
kolmogorov-complexity
sequence
Эспен Шульстад
источник
источник
Ответы:
Pyth, 26 байт
Демонстрация.
Мы начнем с декартового произведения
range(24)
(U24
) со строки"03"
.Затем мы сопоставляем эти значения с соответствующей строкой форматирования substitution (
m%"'%02d:%s0',"d
).Затем результирующие строки соединяются символом новой строки (
jb
).Наконец, мы убираем запятую (
P
) и печатаем.источник
Befunge-93, 63 байта
(анимация сделана с помощью BefunExec )
источник
Баш:
584746 символовисточник
echo \'{00..23}:{0,3}0\'|sed 's/ /,\n/g'
40 символов. Ницца. Спасибо. Но я предпочитаю использоватьbash
собственные силы.printf "'%s',\n" {00..23}:{0,3}0
printf "'%s'\n" {00..23}:{0,3}0|sed $\!s/$/,/
составляет 45 байтCJam,
31 3029 байтЭто довольно просто, используя форматирование printf:
Попробуйте онлайн здесь
источник
Python 2,
5856 байтПодобно ответу sentiao, но с использованием
for
цикла, с разделением, чтобы удалить запятую. Спасибо @grc за удаление двух байтов.источник
"'%02d:%s0',"[:57-i]
Java - 119 байт
Я начал с StringJoiner в Java 8, но это означает включение оператора импорта, поэтому я решил сделать это по-старому:
Возможно , это может быть улучшено за счет избавления от множественных встречающейся
String
иSystem
ключевых слов.источник
a
, переместитьi
инкремент, потерятьfor
скобки и переместить запятую / символ новой строки в начало (что позволяет использовать корочеsubstring
и избавиться от негоlength()
). Поскольку функции разрешены по умолчанию, вы можете сделать его еще короче, исключив шаблон:void f(){String s="";for(int i=0;i<24;)s+=String.format(",\n'%02d:00',\n'%02d:30'",i,i++);System.out.print(s.substring(2));}
даже немного больше, если вы сделаете так, чтобы он просто возвращал строку вместо печати, но, похоже, это идет вразрез с духом, если не с буквой.String.format
наs.format
. Ваш компилятор / IDE может пожаловаться на это, но это работает;)Рубин,
94615651Спасибо @blutorange (снова) за помощь в игре в гольф!
источник
puts (0..47).to_a.map{|h|"'%02d:%02d'"%[h/2,h%2*30]}.join","
(после последней запятой естьputs Array.new(48){|i|"'%02d:%02d'"%[i/2,i%2*30]}.join','
.join
на*
:)Perl,
52504845BС помощью ThisSuitIsBlackNot :)
источник
JAVA
9594 байтаМне нравится тот факт, что printf существует в Java:
Ungolfed
РЕДАКТИРОВАТЬ Заменены
','
с44
источник
Пиф,
3231 байтЯ что-то играл в python, но это оказалось точно так же, как и ответ Sp3000. Поэтому я решил попробовать Pyth:
Это точный перевод ответа Sp3000:
Это мой первый опыт работы с Pyth, поэтому, пожалуйста, расскажите мне об экономии 1 байта.
источник
PHP, 109 байт
источник
Рубин,
5451 байтисточник
\n
фактические символы новой строки и убрав пробел междуjoin
и"
. С другой стороны, обратите внимание, что указанный вывод имеет ведущие нули для часов.puts
к$><<
(без пробела) и.join
с*
. У вас все еще есть ведущая нулевая проблема для часов, хотя.С
116,115,101,100,95,74,73, 71Может быть, удастся убрать еще несколько байтов из этого ...
источник
T-SQL,
319307305 байтВерсия без гольфа:
источник
Pyth, 34 байта
Это определенно можно улучшить.
Попробуйте онлайн: Pyth Compiler / Executor
Объяснение:
источник
j+\,bm%"'%02d:%s0'",/d2*3%d2 48
с форматированием строкиPython 2, 69 байт
Совершенно очевидно, но вот объяснение:
'0'
и'3'
в строковом формате короче, чем список%02d
делает отступы дляh
m
не требует заполнения, поскольку чередующийся символ находится в фиксированной позиции'\n'.join()
решает требования финальной линииЯ понятия не имею, можно ли это сделать короче (в Python 2).по Sp3000 61 байт:
print',\n'.join("'%02d:%s0'"%(h/2,h%2*3)for h in range(48))
источник
print',\n'.join("'%02d:%s0'"%(h/2,h%2*3)for h in range(48))
m
. (Также это 59 байтов, а не 61)Haskell, 85 байт
К сожалению,
printf
требуется 19 байтimport
, поэтому я не могу его использовать.источник
Юлия:
656461 персонажаЮлия: 64 персонажа
(Сохранено здесь, чтобы показать хороший
for
синтаксис Джулии .)источник
Фортран 96
Стандартное злоупотребление типами и требование только для финала
end
для компиляции. К сожалению, из-за неявного форматирования,'(a)'
в последнемprint
утверждении требуется. Тем не менее, лучше, чем ответы C и C ++;)источник
JavaScript (ES6),
7786 + 1 байтНе понял, что в каждой строке должны быть кавычки (+1 для
-p
флага с узлом):старое решение:
Развернутая версия (с использованием цикла for вместо
Array.from
):источник
Array.from(Array(48),(d,i)=>`'${i>19?"":0}${0|i/2}:${i%2*3}0'`).join`,\n`
. Замените \ n фактическим символом новой строки.Golflua
5251 символовИспользуя ascii 44 =
,
и 0 пробел сохраняет символ.Безголосая версия Lua будет
Это
if
утверждение очень похоже на троичный операторa > b ? 44 : 0
.источник
C # - 120 байтов
источник
Python,
60 5864 байтаUngolfed:
Попробуйте это онлайн здесь .
источник
𝔼𝕊𝕄𝕚𝕟, 39 символов / 67 байтов (не конкурирующие)
Try it here (Firefox only).
Ни одного алфавитного символа в поле зрения ...
источник
PHP,
69 7062 байтаПопробуйте онлайн
Вывод
'23:30'
в конце немного хромает, и поэтому закрывает контекст php,?>
не открывая и не открывая его снова. Более чистая альтернатива (но 65 байт) будет:Попробуйте онлайн
Спасибо @Dennis за советы. Альтернатива вдохновлена вкладом @ ismael-miguel.
источник
<?...?>'23:30'
сохраняет три байта. Кроме того, вы можете заменить\n
на новую строку.Swift, 74 байта
Обновлен для Swift 2/3 ... и с новой интерполяцией строк ...
источник
Javascript, 89 байт
источник
Array.push()
поддерживает? ;)for(i=a=[];i<24;)a.push((x=("0"+i++).slice(-2))+":00",x+":30");alert(a.join(",\n"))
"'"+
части до одной:for(i=a=[];i<24;)a.push((x="'"+("0"+i++).slice(-2))+":00'",x+":30'");alert(a.join(",\n"))
Python 2: 64 байта
источник
print',\n'.join("'%02d:00',\n'%02d:30'"%(h,h)for h in range(24))
Рубин - 52 байта
источник
.join
для*
... Это обычная вежливость вместо того, чтобы просто публиковать новый ответ с незначительным улучшением, предлагая улучшение оригинального плаката. См meta.codegolf.stackexchange.com/questions/75/...$><<
!Python 2,
7465 байтМы генерируем двухстрочную строку для каждого часа, используя форматирование текста:
Этот код довольно понятен, но умная индексация и целочисленная математика в ответе Sp3000 дают более короткое решение.
источник
"'%02u:00',\n'%02u:30'"%(h,h)
print',\n'.join("'%02u:%02u'"%(h,i)for h in range(24)for i in[0,30])