Цель здесь состоит в том, чтобы просто перевернуть строку одним поворотом:
сохранить заглавные буквы в тех же местах.
Пример ввода 1: Hello, Midnightas
Пример вывода 1:SathginDim ,olleh
Пример ввода 2: .Q
примерный вывод 2:q.
Правила :
- Вывод в STDOUT, ввод из STDIN
- Победитель будет выбран 13 июля по Гринвичу + 3 12:00 (одна неделя)
- Входные данные могут состоять только из символов ASCII, что облегчает работу программ, не использующих какую-либо кодировку, содержащую символы, отличные от ASCII.
- Любая пунктуация, заканчивающаяся в позиции, где была заглавная буква, должна игнорироваться
Ответы:
TCC - 4 байта
Попробуйте онлайн!
Объяснение:
источник
tcc.lua
до того, как проблема была опубликована? Учитывая, что вы недавно добавили команды для решения трех других задач, я предполагаю, что это не так. Если для вашего ответа требуется версия языка, который задним числом задал вопрос, вы должны пометить его как неконкурентный в заголовке. Я уберу свое понижение, когда вы добавите метку или предоставите подтверждение того, что ваш код работал в более ранней версии.Python, 71 байт
Попробуйте онлайн
-3 байта от Рууда, плюс вдохновение для еще 2.
Еще 4 байта от FryAmTheEggman
источник
lambda s:''.join([z.lower(),z.upper()][c.isupper()]for c,z in zip(s,s[::-1]))
на три байта короче(z*2).title()[c.isupper()-1]
должно сработать.~c.isupper()
вместоc.isupper()-1
Python 2, 73 байта
Так как в правилах указан ввод данных:
Хотя вся заслуга принадлежит @Mego, но у меня не было репутации, чтобы просто комментировать его ответ.
источник
Perl, 31 + 2 (
-lp
) = 33 байтаЭто решение от @Ton Hospel (на 13 байт меньше, чем у меня).
Но вам нужно
l
иp
включается. Чтобы запустить это:источник
-a
автосплит, я чувствую, что мог бы использовать это много раз в прошлом! Я должен помнить это! Я думаю, что вы можете сохранить другой байт, используяmap...,...
вместо того,map{...}...
как у вас$F
в начале, хотя! :)perl -lpe 's%.%(lc$>$&?u:l)."c chop"%eeg
-a
подразумевается-F
-a
(и-n
) подразумевается-F
, я читал это некоторое время назад на perlrun, попробовал это, но это не сработало; но я попробовал это снова сейчас, и это прекрасно работает, поэтому я предполагаю, что тогда я сделал что-то не так. Спасибо.Pyth,
1311109 байтСпасибо @FryAmTheEggman за напоминание
V
и @LeakyNun за еще один байт.Попробуйте онлайн! теперь на мобильном телефоне, немного обновив ссылку
источник
srV_Qm!rId0
11, но я думаю, что можно сократить эту карту ...d
и вы сохранили байт.srV_Qm!/G
должен сохранить байтPython, 66 байт
Рекурсирует по индексам
i
, беря персонажаs[~i]
со спины, а корпусs[i]
с фронта. Быть капиталом проверяется как лежащий в непрерывном диапазоне@ABC...XYZ[
. Кредит FryAmTheEggman от(_*2).title()
хитрости.источник
Retina ,
756765 байтКоличество байтов предполагает кодировку ISO 8859-1.
Попробуйте онлайн! (Первая строка включает набор тестов с несколькими разделенными переводом строк.)
источник
JavaScript (ES6),
9583 байтаРедактировать: благодаря @ edc65 сохранены огромные 12 байтов.
источник
r=
этом нет необходимости.)Пайк,
11109 байтПопробуй это здесь!
источник
05AB1E ,
19161513 байтСпасибо Emigna за сохранение 3 байта!
Наверное, меня побьет Желе ... Код:
Использует кодировку CP-1252 . Попробуйте онлайн! ,
источник
S.l_v¹lRNèyiu}?
на 1 байт корочеÂuvy¹Nè.lilë}?
14 лет. Просто рад, что могу помочь тебе на этот раз :)Ruvy¹Nè.lil}?
на самом деле. Я не использовал раздвоение и забыл удалить остальное. Итак, 13.MATL , 13 байт
Попробуйте онлайн!
источник
J , 30 байт
Не поддерживает не ASCII
источник
Брахилог , 28 байт
объяснение
Главный предикат:
Предикат 1:
источник
TSQL, 175 байт
Golfed:
Ungolfed
скрипка
источник
На самом деле 25 байтов
Попробуйте онлайн!
Объяснение:
источник
Haskell,
83807571 байтСамый простой способ, который я мог придумать.
источник
(#)
,k
можно переписать вk=reverse>>=zipWith(#)
b
посколькуf a|isUpper a=toUpper|1>0=toLower
это противоречит улучшению Flonk.f
и переписать Flonk - хk
кzipWith f<*>reverse
.s
?k=
.PowerShell,
154,152,99, 86 байтСпасибо @TimmyD за то, что спасли мне колоссальные 47 байт (я также сохранил дополнительные 6)
Спасибо @TessellatingHeckler за сохранение дополнительных 13 байтов.
Последний:
Оригинал:
Нормальное форматирование:
Последний (выглядит лучше, как две строки на мой взгляд):
Объяснение:
Оригинал:
Первый постер здесь был мотивирован, потому что я редко вижу PowerShell,
но наЛюбые предложения приветствуются.154152 байта на этом ... Я понимаю почему!Я понял, что должен полностью изменить свое мышление, чтобы играть в гольф в коде и это было весело!
источник
.tostring()
кавычки и используя целочисленные манипуляции ASCII вместо регулярных выражений. Попробуйте следующее, для 105 байтов -param($a)-join($a[$a.length..0]|%{if(($x=$a[$i++])-le90-and$x-ge65){"$_".ToUpper()}else{"$_".ToLower()}})
.param($a)-join($a[$a.length..0]|%{if(65..90-contains$a[$i++]){"$_".ToUpper()}else{"$_".ToLower()}})
X-inY
корочеY-containsX
, и вы можете поменять егоif
на ложный троичный оператор, чтобы получить 86 байт -param($a)-join($a[$a.length..0]|%{("$_".ToLower(),"$_".ToUpper())[$a[$i++]-in65..90]})
Дьялог АПЛ , 12 байт
819⌶
это функция складывания корпусаf←
потому что его имя давно, мы относим его к е⊢≠f
Булево, где текст отличается от текста в нижнем регистреf¨⍨
используйте это (1 означает верхний регистр, 0 означает нижний регистр), чтобы сложить каждую букву ...⌽
... обратного текстаОбрабатывает не ASCII в соответствии с правилами Консорциума Unicode.
источник
CJam, 22 байта
Проверьте это здесь.
источник
Ракетка, 146 байтов
Ракетка плоха во всей этой игре в гольф.
Пожав плечами, как всегда, любая помощь с сокращением это будет высоко ценится.
источник
Джольф, 21 байт
Попробуй это здесь!
объяснение
источник
(d)is function
... жертвовать орфографией ради гольфа!Perl 6 , 29 байт
источник
C #,
8685 байтAC # лямбда, где входом и выходом является строка. Вы можете попробовать это на .NetFiddle .
Я изо всех сил пытаюсь понять, почему я не могу достичь, чтобы преобразоватьchar.ToLower(c)
вc+32
. Я надеюсь это исправить!12 байтов сохранено благодаря @PeterTaylor (
c|32
чтобы добавить 32 к значению asciic
иc&~32
вычесть 32). Результат будет 72 байта (но может не сработать на не альфа-символе).источник
c|32
вместоc+32
, но это не будет работать с не-альфа-символами.PHP, 128 байт
Я могу попытаться оптимизировать это дальше, но я просто оставлю это как есть на данный момент.
источник
Октава,
5150 байт@(s)merge(isupper(s),b=flip(toupper(s)),tolower(b))
источник
VIM, 46 байт
Было бы три байта,
g~G
если бы нам не нужно было читать со стандартного ввода или писать в стандартный вывод, ну да ладно ...Чтобы проверить это, запустите
Это моя первая заявка здесь, я не уверен, является ли такая заявка приемлемой.
источник
:se ri<cr>C<C-r>"
но тогда вам придется выяснить, как использовать заглавные буквы.Javascript (с использованием внешней библиотеки) (224 байта)
Отказ от ответственности: Использование библиотеки, которую я написал, чтобы привести LINQ C # в Javascript
источник
Sed, 113 + 1 = 114 байт
Зачем? Потому что забавно использовать не тот инструмент, чтобы делать что-то: P
Использование: Запустите
sed -rf file
, введите текст и нажмите Ctrl+ D(отправить EOF).Golfed:
Ungolfed:
источник
Java 7,
221217180 байтМножество байтов сохранено благодаря подходу @LeakuNun .
Ungolfed и тестовые случаи:
Попробуй это здесь.
Выход:
источник
char[]
.String a="";
и изменитьo+=
на,0[i]=
чтобы сохранить байты, но Java не имеет символа.toUpperCase()
/.toLowerCase()
метода, и преобразование из char в String, использование метода upper / lower, а затем снова в char потребует (намного) больше байт. Но не стесняйтесь раскошелиться на связанный ideone и придумать что-нибудь, чтобы заставитьchar[]
работать меньше байтов.С
источник