Настоящий Тонкий Шейди

43

Выведите следующее как можно меньше байтов:

I'm Slim Shady. Yes, I'm the real Shady.
All you other Slim Shadys are just imitating.
So, won't the real Slim Shady please stand up?
Please stand up. Please stand up.

Следующие пять слов должны появиться ТОЛЬКО ОДИН РАЗ в вашем коде:

I'm
Slim
Shady
real
stand

rybo111
источник
32
Теперь эта глупая песня у меня в голове.
Дарт Егрегиус
Это нормально, если программа выводит больше, чем полный текст? То есть. вложение лирики в параны.
Сильвестр
@Sylwester Пока это следует правилам, вы можете написать его так, как хотите.
rybo111
Это действительно колмогоровская сложность ? Это правда, что любая программа, которая имеет правильный вывод, ограничивает сложность Колмогорова, описанную выше, но дополнительное ограничение, вероятно, приведет к неоптимальной программе.
Питер Тейлор
@PeterTaylor вы можете быть правы - я оставлю это на усмотрение сообщества, редактировать или нет.
rybo111

Ответы:

28

Python: 176

print"{0}{1}{2}. Yes, {0}{3}{2}.\nAll you other {1}{2}s are just imitating.\nSo, won't {3}{1}{2} p{4}?\nP{4}. P{4}.".format("I'm ","Slim ","Shady","the real ","lease stand up")

Естественно, такая же идея, как и у других компрессионных решений (правда, независимо полученных).

nneonneo
источник
1
Я по ошибке понизил это. Сожалею. (Если вы сделаете какие-либо изменения, я думаю, что смогу убрать понижающее голосование)
edc65
@ edc65: Спасибо за честность :) Я отредактировал ответ.
nneonneo
Вы можете сбрить 3 байта, просто используя пробелы. print"{0}{1}{2}. Yes, {0}{3}{2}.\nAll you other{1}{2}s are just imitating.\nSo, won't{3}{1}{2} p{4}?\nP{4}. P{4}.".format("I'm"," Slim"," Shady"," the real","lease stand up")
feersum
25

Brainfuck 1923 байт

Наслаждаться...

-[------->+<]>.+[-->+<]>++.---[->+++<]>+.
[->+++++<]>-.>-[--->+<]>--.--[--->++++<]
>.---.++++.[->+++++<]>-.>-[--->+<]>--.>+
[----->+++<]>+.-------.+++.+[--->+<]>++.
-----[++>---<]>.++[--->++<]>.--[->+++<]>-.
[->++++<]>+.[--->+<]>----.-[++>---<]>+.
------------.++++[->++<]>+.+[-->+<]>++.---
[->+++<]>+.[->+++++<]>-.---[->++++<]
>.------------.---.--[--->+<]>-.---[----->++<]
>.-------------.----.+++++++++++.[++>---<]
>--.>-[--->+<]>--.>+[----->+++<]>+.-------.
+++.+[--->+<]>++.-----[++>---<]>.>
++++++++++.+++[->+++++<]>.[--->+<]>+..
[++>---<]>--.--[->++++<]>+.----------.++++++.-
[---->+<]>+++.+++++[->+++<]
>.+++++.------------.---.+++++++++++++.
[-->+++++<]>+++.>-[--->+<]>--.--
[--->++++<]>.---.++++.[->+++++<]>-.>-
[--->+I'm<]>--.>+[----->+++<]>+.-------.+++.+
[--->+<]>++.------.+[---->+<]>+++.[->+++<]>+.--
[--->+<]>---.-------------.--[--->+<]>-.-
[--->++<]>.+++++++++++.--.+.
[---Slim->+<]>+++.-[--->++<]>-.++++.----.
+++++++++++.+[->+++<]>++.--[--->+<]
>-.-----------.+++++.-------.--[->+++<]>-.
>++++++++++.>-[--->+<]>--.[--->+<]>--.
[->+++++<]>+.------------.--[->++++<]>-.
--------.-.[++>---<]>++.[->+++<]>-.[---->+
<]>+++.---[->++++<]>.------------.---.--[---
>+<]>-.---[----->Shady++<]>.-------------.-
---.+++++++++++.[++>---<]>--.>-[--->+<]
>--.--[--->++++<]>.---.++++.[->+++++<]
>-.>-[--->+<]>--.>+[----->+++<]>+.-------.
+++.+[--->+<]>++.-[---->+<]>++.[-->+++++++<]
>.----.-------.----.--[--->+<]>--.++++[->+++<]
>.--[--->+<]>-.---[->++++<]>-.+.+[->+++<]
>++.+++++++++++++.----------.-[--->+<]
>-.---[->++++<]>+.-----.[--->++++<]>-.>
++++++++++.[->++++++++<]>.+[--->++++<]
>.---real----.----.--[--->+<]>--.++++[->+++<]
>.--[--->+<]>-.---[->++++<]>-.+.+[->+++<]
>++.+++++++++++++.----------.-[--->+<]>-.---
[->++++<]>+.-----.[->+++++<]>--.++[--->++<]
>.[-->stand+++++<]>.+[--->++++<]>
.-------.----.--[--->+<]>--.++++[->+++<]
>.--[--->+<]>-.---[->++++<]>-.+.+[->+++<]
>++.+++++++++++++.----------.-[--->+<]
>-.---[->++++<]>+.-----.[->+++++<]>--.

Стандартные петли

Joshpbarron
источник
Не включает в себя пять слов.
NWP
6
Возможно, прокрутите вправо, однако я отредактирую пост, чтобы у вас не было слишком ...
Joshpbarron
Я сделал прокрутку, но почему-то пропустил слова, извините.
NWP
СЕЙЧАС это понятно!
edc65
1
Я придумал символы 1918 года , я не знаю, что какой-либо из этих символов выходит за рамки нормы, где они добавили бы дополнительные байты. Я пока не знаю другого способа подсчета байтов, поэтому я бы сказал, 1918
Малахи
17

Perl, 155

С улучшениями Мартина Бюттнера и Тейлона :

$_="01. Yes, 02X.
All you other1s are just imitating.
So, won't21 p3?
P3. P3.";s/\d/("I'm"," SlimX"," the real","lease stand up")[$&]/ge;s/X/ Shady/g;print
брезгливый оссифраж
источник
@ MartinBüttner Отличные предложения. Спасибо :-)
брезгливое ossifrage
Вы можете опустить последний; слишком.
Тайлон
2
Люблю часть "Все, что вы другие 1"
Уильям Барбоза
Сдвиг вокруг "" для 157: $ _ = "01. Да, 032. Все вы, другие, просто подражаете. Итак, не будет 31 p4? P4. P4."; S / 0 / I'm / g; s / 1 / Slim2 / g; s / 2 / Shady / g; s / 3 / real / g; s / 4 / аренды встать / g; печать
Thaylon
Мины так похожи сейчас, а я был позже, поэтому я просто удалю его. Вы можете получить еще 2 байта с помощью: $ _ = "01. Да, 02X. Все вы, другие, просто подражаете. Итак, не будет ли 21 p3? P3. P3."; S / \ d / ("Я", «SlimX», «реальный», «аренда встать») [$ &] / ge; s / X / Shady / g; print
Thaylon
12

Рубин, 154 байта

$><<"012. Yes, 032.
All you other12s are just imitating.
So, won't312 p4?
P4. P4.".gsub(/\d/){%W{I'm \ Slim \ Shady \ the\ real lease\ stand\ up}[$&.hex]}

Помогая нескольким людям разобраться в том, как разделить строки-заполнители, я решил попробовать их идею обратного вызова. ;)

Мартин Эндер
источник
1
Вы можете сохранить некоторые символы: #{h+a}короче "+h+a+", и #{d+h+a}короче, чем "+d+h+a+".
ProgramFOX
1
@ProgramFOX oO ... Мне стыдно сказать, что я только думал #{h}#{a}.
Мартин Эндер
Можно сохранить еще несколько с h=" Slim"+a=" Shady", и один, заменив puts на $><<.
гистократ
154 с.gsub(/\d/){%W{I'm \ Slim \ Shady \ the\ real lease\ stand\ up}[$&.hex]}
Вентеро
@ Ventero спасибо! :)
Мартин Эндер
9

JavaScript (E6) 165

Точно так же на другом языке

alert("012. Yes, 05326All you other12s are just imitating6So, won't5312 p4?\nP4. P4."
.replace(/\d/g,x=>"I'm1 Slim1 Shady1real1lease stand up1 the 1.\n".split(1)[x]))

Объяснение: замените каждую цифру в первой строке соответствующей строкой в ​​массиве. ["I'm"," Slim"," Shady","real","lease stand up"," the ",".\n"]

Пересмотрено с новыми правилами здесь, в PPCG (результат, возвращаемый функцией, без ограничений на функции, более новые, чем задача), это может быть 158. См. Фрагмент

F=
_=>`012. Yes, 0532.
All you other12s are just imitating.
So, won't5312 p4?
P4. P4.`.replace(/\d/g,x=>"I'm, Slim, Shady,real,lease stand up, the ".split`,`[x])

console.log(F())

edc65
источник
1
сумасшедшее дерьмо, мне это нравится
Джон Смит
Хорошая реализация :) Вы можете сохранить байт, используя шаблонный литерал в replaceфункции и заменяя \nего реальным переводом строки.
Лохматый
@ Shaggy Я мог бы лучше справляться с литералами шаблонов, но они не были реализованы ни в одном браузере одновременно (август 2014 г.)
edc65,
Ах я вижу. Означает ли это, что мой ответ лишает законной силы , так как этот вопрос был опубликован до того, как была стандартизирована спецификация, определяющая литералы шаблона?
Лохматый
1
@JacobPersi посмотри
edc65
6

CJam - 133

"I'm| Slim| Shady| the real|lease stand up|432. Yes, 412.
All you other32s are just imitating.
So, won't132 p0?
P0. P0."'|/~5,{`/\*}/

Попробуйте это на http://cjam.aditsu.net/

Я думаю, что это также работает в GolfScript, если вы замените '|на"|"

aditsu
источник
7
Все остальные тридцать двое просто подражают. Так что, разве не один-два-два-три-два? Пи Зе Ро. Пи Зе Ро. Вот так теперь это будет звучать в моей голове. : P
Деннис
6

GolfScript, 162 154 152 144 байта

"I'm ":i"Slim ":|"Shady":y". Yes, "i"the real ":!y".
All you other "|y"s are just imitating.
So, won't "!|y" p""lease stand up":l"?
P"l". P"l"."

Тест онлайн

ProgramFOX
источник
3
Вы можете сэкономить 8 байт, заменив \nи nдействительными переводами строки и выбрав не алфавитно-цифровые имена переменных (например, &), чтобы устранить пробелы вокруг них.
Деннис
@Dennis Большое спасибо! Я отредактировал свой ответ.
ProgramFOX
Война началась.
Джозия Уинслоу
5

VBA 307 байт

И запутано с разделителями строк (просто для удовольствия). На основании этого ответа

Function p()
e = "Slim ": m = "Shady": i = "I'm ": n = "lease stand up": s = "real ": a = "."
p = i & e & m & ". Yes, " & i & "the " & s & m & a & Chr(10) & "All you other " & e & m & "s are just imitating." & Chr(10) & "So, won't the " & s & e & m & " p" & n & Chr(10) & "P" & n & ". P" & n & a
End Function

Вызывается из непосредственного окна с ?p.

307 включает в себя ?p.

Резиновая утка
источник
1
О,? P в ближайшем окне я вижу, +1
Алекс
Вы должны избавиться от a = "."Я думаю, вы могли бы сбрить несколько байтов
Малахи
На самом деле, подумав, я думаю, что это более читабельно с
разделителями
ты не можешь избавиться от пробелов между операторами?
Малахи
1
@Malachi в соответствии со спецификацией, да, но реальные реализации заставляют вас пробелов. Если бы я сделал это в VBScript, я бы, возможно, немного его сократил.
RubberDuck
5

PHP - 151 байт

<?="I'm Slim Shady".gzinflate("]Œ1
„0E{Á;üÎFr…ÅÒNHe9à°F&‰d&,Þ~Avmßûï;̬=Æ.ÂVFaø•–ÃµÍ ‚#WäÓx    ñR
*Œ­ª!Ä`d!½Ï¹Ï=>9uöót7Ø…Ij”ÔýÕ6Ó?qx‚/");@realstand;

HexDump:

0000000 3f3c 223d 2749 206d 6c53 6d69 5320 6168
0000010 7964 2e22 7a67 6e69 6c66 7461 2865 5d22
0000020 318c 840a 1030 7b45 3bc1 cefc 7246 c585
0000030 4ed2 6548 e039 46b0 8926 2664 de2c 057e
0000040 7641 df6d effb cc3b 3dac 2ec6 56c2 6146
0000050 f812 9695 b5c3 20cd 2382 e457 14d3 0978
0000060 52f1 2a0a ad8c 21aa 60c4 2164 cfbd cfb9
0000070 3e3d 7539 f3f6 3774 85d8 1949 946a d416
0000080 d5fd d336 713f 8278 222f 3b29 7240 6165
0000090 736c 6174 646e 003b
0000097

Другой ответ без использования gzinflate (228 байт):

Считывает короткие (16 бит), извлекает 3 5-битных целых числа как индексы таблицы поиска.

<?$a=str_split(" .Yes,AlyouthrajimngSw'pP?
")+[27=>"I'm ",'Slim ',@Shady,'the real ','lease stand up'];$b=unpack(@v26,'o…~:tç       (ƒ-4€t£9ê`0BË-SBT $2U`Y{ÿXg |ác');foreach($b as$c)echo$a[$c>>10],$a[$c>>5&31],$a[$c&31];

HexDump:

0000000 3f3c 6124 733d 7274 735f 6c70 7469 2228
0000010 2e20 6559 2c73 6c41 6f79 7475 7268 6a61
0000020 6d69 676e 7753 7027 3f50 220a 2b29 325b
0000030 3d37 223e 2749 206d 2c22 5327 696c 206d
0000040 2c27 5340 6168 7964 272c 6874 2065 6572
0000050 6c61 2720 272c 656c 7361 2065 7473 6e61
0000060 2064 7075 5d27 243b 3d62 6e75 6170 6b63
0000070 4028 3276 2c36 9d27 026f 8504 7e0c 3a03
0000080 e774 0918 0901 8328 1c2d 8034 a374 ea39
0000090 6001 3011 cb42 532d 5442 a007 3224 6055
00000a0 9d59 ff7b 5802 2067 e17c 2763 3b29 6f66
00000b0 6572 6361 2868 6224 6120 2473 2963 6365
00000c0 6f68 6124 245b 3e63 313e 5d30 242c 5b61
00000d0 6324 3e3e 2635 3133 2c5d 6124 245b 2663
00000e0 3133 3b5d
00000e4
es1024
источник
5

С, 374

Перемещая память

Не самый короткий, но может ли он стать быстрее?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *s;
void m (int d, int f, int p)
{
    memmove (s+p+f, s+p, strlen(s)-p+1); // Shift a part of the string to make room for our insertion
    memcpy (s+p, s+d, f); // Copy the desired reference in place
}
int main ()
{
    s = malloc (168);
    strcpy (s,"I'm Slim Shady. Yes, the real.\nAll you others are just imitating.\nSo, won't the please stand up?\nP. ");

    m (0, 4, 21);
    m (8, 6, 33);
    m (3, 11, 54);
    m (28, 5, 100);
    m (3, 11, 105);
    m (118, 14, 135);
    m (134, 16, 151);
    puts (s);
}

Это 374 символа долго после минификации.

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
char*s;void m(int d,int f,int p){memmove(s+p+f,s+p,strlen(s)-p+1);memcpy(s+p,s+d,f);}int main(){s=malloc(168);strcpy(s,"I'm Slim Shady. Yes, the real.\nAll you others are just imitating.\nSo, won't the please stand up?\nP. ");m(0,4,21);m(8,6,33);m(3,11,54);m(28,5,100);m(3,11,105);m(118,14,135);m(134,16,151);puts(s);}
marctrem
источник
Хорошо, но вы можете char s[168]="I'm Slim Shady. Yes, the real.\nAll you others are just imitating.\nSo, won't the please stand up?\nP. ";m(d,f,p){memmove(s+p+f,s+p,strlen(s)-p+1);memcpy(s+p,s+d,f);}main(){m(0,4,21);m(8,6,33);m(3,11,54);m(28,5,100);m(3,11,105);m(118,14,135);m(134,16,151);puts(s);}
Johan du Toit
5

Ява, 247

Мой первый код гольф, пока изучаю Java. Написал, потому что он побеждает другую (полностью функциональную) запись Java и запись на Haskell.

class S{public static void main(String[]a){String s="I'm",t=" Slim",u=" Shady",v=" the real",w="lease stand up";System.out.print(s+t+u+". Yes, "+s+v+u+".\nAll you other"+t+u+"s are just imitating.\nSo, won't"+v+t+u+" p"+w+"?\nP"+w+". P"+w+".");}}
CoolWilly
источник
5

C # 209 205 201 197 209 212 217

class P{static void Main(){System.Console.Write("{0}{1}{2}. Yes, {0}{3}{2}.\nAll you other {1}{2}s are just imitating.\nSo, won't {3}{1}{2} p{4}?\nP{4}. P{4}.", "I'm ","Slim ","Shady","the real ","lease stand up");}}

Теперь с правильной капитализацией и новыми линиями

Малахия
источник
1
Возможно, вы могли бы сохранить еще несколько символов, переместив пробелы из строки формата в замены, например WriteLine("{0}{1}","I'm ","Slim ").
NightElfik
1
Окончание новой строки не является обязательным требованием, поэтому рассмотрите возможность использования .Write()вместо .WriteLine(). Даже если это требуется, .Write()с \nкороче.
Боб
спасибо @Bob, который спас мне еще 4 байса! даже на мой ответ VB тоже!
Малахи
У вас нет заглавных
букв «
@TopinFrassi, я исправил это в этом ответе, а также в своем ответе на VB. Мне тоже не хватало места. Я спрашиваю о новых строках в выводе прямо сейчас ...
Малахи
5

VB 253 249 245 241 244 285 259 223

Я ненавижу завершение новой линии

Module M
Sub Main
Console.Write("{0}{1}{2}. Yes, {0}{3}{2}.{5}All you other {1}{2}s are just imitating.{5}So, won't {3}{1}{2} p{4}?{5}P{4}. P{4}.","I'm ","Slim ","Shady","the real ","lease stand up",vbCr)
End Sub
End Module

Теперь с капитализацией и новой строки в выводе, и никаких вкладок *

Спасибо VB за vbCrLf

Спасибо, @ Тейлор Скотт!

Малахия
источник
Интересно, будет ли это работать без вкладок и новых строк ?????
Малахи
меня не пускают в Visual Studio 2013
Малах
1
223 байта
Тейлор Скотт
1
@TaylorScott, по-видимому, теперь это позволит вам кодировать без отступов. или, может быть, это просто Mono для вас
Малахи
Насколько я знаю, да, то, что может анализировать компилятор, сильно зависит от того, на какой версии вы работаете - особенно возвращаясь к VB 6.0 и более
Taylor Scott
4

VBA 343 байта

Sub EMINEM()
e = "Slim "
m = "Shady"
i = "I'm "
n = "lease stand up"
em = "real "

MsgBox i & e & m & ". Yes, " & i & "the " & em & m & "." & Chr(10) & "All you other " & e & m & "s are just imitating." & Chr(10) & "So, won't the " & em & e & m & " p" & n & Chr(10) & "P" & n & ". P" & n & "."

End Sub
Alex
источник
1
Очень хорошая реализация
Малахия
Благодаря Малахи, не могу пропустить этот гольф, как старые поклонники Эминема.
Алекс
Я работаю над одним прямо сейчас.
Малахия
2
Приятно видеть кого-то играющего в гольф в VBA. Вы не можете печатать в ближайшее окно с помощью ??
RubberDuck
1
@ ckuhn203 "?" меняется на «печать», но мне понадобится debug.print, чтобы он испортился каждый раз, когда я использую «?». Не стесняйтесь указать, могу ли я сделать это здесь, спасибо!
Алекс
4

PowerShell 194 189 164

"{0}{1}{2}. Yes, {0}{3}{2}.`nAll you other {1}{2}s are just imitating.`nSo, won't {3}{1}{2} p{4}?`nP{4}. P{4}."-f"I'm ","Slim ","Shady","the real ","lease stand up"

Каким-то образом мой ответ очень напоминал @ nneonneo , хотя это не было моим первоначальным намерением ...

DarkAjax
источник
3

PHP - 196 171

<?$S="Shady";$P="lease stand up";$R="the real ";$I="I'm ";$s="Slim ";echo"$I$s$S. Yes, $I$R$S
All you other $s$S"."s are just imitating.
So, won't $R$s$S p$P?
P$P. P$P."

;

ArcticanAudio
источник
3

Луа 201 193 188 178

h=" Shady"i="I'm"s=" Slim"..h r=" the real"u="lease stand up"io.write(i,s,". Yes, ",i,r,h,".\nAll you other",s,"s are just imitating.\nSo, won't",r,s," p",u,"?\nP",u,". P",u,".")

Развернул и расширил некоторые

h=" Shady"
i="I'm"
s=" Slim"..h
r=" the real"
u="lease stand up"
io.write(i,s,". Yes, ",i,r,h,".\nAll you other",s,"s are just imitating.\nSo, won't",r,s," p",u,"?\nP",u,". P",u,".")
Кайл Канос
источник
3

Common Lisp, 197

(let((a"I'm ")(b"Slim ")(c"Shady")(d"real ")(e"lease stand up"))(format t"~{~A~}"(list a b c". Yes, "a"the "d c".
All you other "b c"s are just imitating.
So, won't the "d b c" p"e"?
P"e". P"e"")))
fstamour
источник
3

Perl, 161 164 байта

Не такой короткий, как брезгливый ответ ossifrage , но я хотел поделиться CamelCaseCompression, который никто другой не использовал и позволяет удалить много пробелов и кавычек.

Однако для того, чтобы стать по-настоящему полезным, нужен чуть более длинный текст.

$_="0 1 2. Yes, 03 2.
AllYouOther 1 2sAreJustImitating.
So, won't3 1 24?
4. 4.";s/\d/qw(I'm Slim Shady TheReal PleaseStandUp)[$&]/ge;s/\B([A-Z])/ \L\2/g;print

Изменить: По предложению Тайлона, s/(\S)([A-Z])/\1 \L\2/gзамена была сокращена на четыре символа. Тем не менее, это не затрагивает диграфы с запятыми-заглавными буквами, поэтому нужно было вставить дополнительный пробел, прежде чем «не будет».

comperendinous
источник
Интересный. Немного короче с "не словом границы": s / \ B ([AZ]) / \ L \ 1 / g;
Тайлон
Спасибо @ Thaylon. \ B - это то, о чем я собираюсь прочитать. Это странно.
comperendinous
3

ПИТОН: 198 193 байта

i,s,h,r,t="I'm ","Slim ","Shady","real ","lease stand up"
print i+s+h+". Yes, "+i+"the "+r+h+".\nAll you other "+s+h+"s are just imitating.\nSo, won't the "+r+s+h+" p"+t+"?\n"+"P"+t+'. P'+t+'.'
RageCage
источник
переместитесь pleaseв переменную хранения stand upи избавьтесь от своей gпеременной, и, возможно, удалите ненужные /nвам
Malachi
Если я уберу \ n, новые строки исчезнут, и я предполагаю, что они необходимы для вывода.
RageCage
3

Golfscript - 140 (твиттер)

"I'm"" Slim"" Shady"". Yes, "3$" the real"3$".
All you other"6$2$"s are just imitating.
So won't"5$3$3$" p""lease stand up""?
P"1$". P"1$"."

Я стройный Шейди. Да, 3 настоящие 3.

Все остальные 62 просто имитируют.

Так не встанет ли 533, пожалуйста?

P1. P1.

Джозия Уинслоу
источник
3

Rust (полная программа), 183 180 178 173 172 байта

178 -> 173 байта, благодаря Саре J

fn main(){print!("{}{}{}. Yes, {0}{}{2}.
All you other{1}{2}s are just imitating.
So, won't{3}{1}{2} p{}?
P{4}. P{4}.","I'm"," Slim"," Shady"," the real","lease stand up")}

Попробуйте онлайн!

Руохола
источник
173 байта
Сара Дж
@ Saraj Ofc, очевидно! Спасибо :)
Руохола
2

C # 226

class P{static void Main(){System.Console.Write("{0}{1}{2}. Yes, {0} the{3} {2}.All you other{1}{2}s are just imitating.So, won't the{3}{1}{2} please{4}up?Please{4}up. Please{4}up.","I'm"," Slim ","Shady"," real"," stand ");}}
CheeZe5
источник
Вы пропустили несколько мест, где вы можете удалить группу персонажей, посмотрите мои. codegolf.stackexchange.com/a/35557/9435
Малахия,
2

Джава, 308 301 298 292 258

Ява немного многословна, но вот моя попытка:

class P{public static void main(String[]c){String s=" Shady",t=" the real",l="lease stand up",i=" Slim",m="I'm";System.out.format("%s%s%s. Yes, %s%s%s.\nAll you other%s%ss are just imitating.\nSo, won't%s%s%s p%s?\nP%s. P%s.",m,i,s,m,t,s,i,s,t,i,s,l,l,l);}}
Тим
источник
1
Вы можете 1-объединить 'real' и 'the', они всегда вместе 2-убрать некоторые пробелы из строки большого формата 3 - прежде всего: используйте больше одиночных переменных, массив a бесполезен. В общем, вы можете пойти на ~ 270
edc65
@ edc65 Я не знал, что могу объявить несколько строк в Java без Stringмногократной записи . Вот почему у меня был массив для всех, кроме одной переменной. Большое спасибо за подсказки.
Тим
2

MySQL: 273 267

set @i="I'm", @s="Slim", @h="Shady", @r="real", @t="stand", @p="lease stand up";select concat(@i," ",@s," ",@h,". Yes, ",@i," the ",@r," ",@h,".\r\nAll you other ",@s," ",@h,"s are just imitating.\r\nSo, won't the ",@r," ",@s," ",@h," p",@p,"?\r\nP",@p,". P",@p,".");
g.carvalho97
источник
2

Рубин: 211

Это впечатляет, поскольку простая печать текста более эффективна, но это намного круче.

puts Zlib.inflate("eJxdjDEKwzAQBHu9Yjs3Rl8ILt0FVKU88GErnCWhO2H8e6sIwUmzxQyz87AjSOyz0XJ6vFhHzB3axqhM8hFuEsGZG3IX9ZYoqDLeTQ1xj0YW0+pdyCOOnAa7/XwTFGFShhqlBa083PMXePyDC15NOP8=".unpack("m0")[0])#I'mSlimShadyrealstand
Automatico
источник
2

JavaScript 259 240 238 байт

Не очень хорошо, но с таким же успехом можно опубликовать ответ.

b=String.prototype,b.a=b.replace,alert("123. Yes, 16537All you other 23s are just imitating7So, won't 6523 p4?\nP4. P4.".a(/1/g,"I'm ").a(/2/g,"Slim ").a(/3/g,"Shady").a(/4/g,"lease stand up").a(/5/g,"real ").a(/6/g,"the ").a(/7/g,".\n"))

Более читаемая версия:

b=String.prototype
b.a=b.replace
alert("123. Yes, 16537All you other 23s are just imitating7So, won't 6523 p4?\nP4. P4."
    .a(/1/g,"I'm ")
    .a(/2/g,"Slim ")
    .a(/3/g,"Shady")
    .a(/4/g,"lease stand up")
    .a(/5/g,"real ")
    .a(/6/g,"the ")
    .a(/7/g,".\n")
    )
Марк Габриэль
источник
2

F #, 250 242

[1..21]|>List.iter((function|1|5->"I'm "|2|9|13->"Slim "|4->". Yes, "|6|12->"the real "|8->".\nAll you other "|11->"s are just imitating.\nSo won't "|15->" p"|16|18|20-> "lease stand up"|17->"?\nP"|19->". P"|21->"."|_->"Shady")>>printf "%s")

Более читаемая версия с переносами строк:

[1..21]|>List.iter((function
|1|5->"I'm "
|2|9|13->"Slim "
|4->". Yes, "
|6|12->"the real "
|8->".\nAll you other "
|11->"s are just imitating.\nSo won't "
|15->" p"
|16|18|20-> "lease stand up"
|17->"?\nP"
|19->". P"
|21->"."
|_->"Shady")>>printf "%s")
Марк Паттисон
источник
2

JavaScript (ES6), 165 163 байта

f=

_=>`${a="I'm"}${b=` Slim${c=` Shady`}`}. Yes, ${a+(d=" the real")+c}.
All you other${b}s are just imitating.
So, won't${d+b} p${e="lease stand up"}?
P${e}. P${e}.`

console.log(f());

мохнатый
источник
2

PHP, 179 байт

<?
$i="I'm";
$s=" Slim";
$h=" Shady";
$p="lease stand up";
$r=" the real";
echo"$i$s$h. Yes, $i$r$h.\nAll you other$s$h"."s are just imitating.\nSo, won't$r$s$h p$p?\nP$p. P$p.";

И гольф

<?$i="I'm";$s=" Slim";$h=" Shady";$p="lease stand up";$r=" the real";echo"$i$s$h. Yes, $i$r$h.\nAll you other$s$h"."s are just imitating.\nSo, won't$r$s$h p$p?\nP$p. P$p.";
Brobin
источник