하나 더 LUL과 난 외출


57

도전 설명

인기있는 스트리밍 사이트 twitch.tv 의 일부 채널에서 사람들이 채팅에서 스팸을 보내는 경향이있는 일반적인 메시지는 사람들을 스팸으로 만드는 "LUL"입니다.

One more LUL and I'm out

LUL 은 스트림에서 재미있는 일이 발생했음을 표현하는 데 사용되는 인기있는 감정 표현입니다.

곧 단 밈은 그들의 잠재력과 카피 파스타의 패러디를 보여주었습니다.

One more "One more LUL and I'm out" and I'm out

그 자체로 중첩 된 동일한 메시지입니다. 음수가 아닌 정수가 주어지면 아래 패턴에 N따라 LUL- 파스타 중첩 N시간 자체를 출력하십시오 .

바이트 단위의 가장 짧은 코드가 승리하는 표준 규칙이 적용됩니다.

샘플 입력 / 출력

0: One more LUL and I'm out
1: One more "One more LUL and I'm out" and I'm out
2: One more "One more "One more LUL and I'm out" and I'm out" and I'm out
...
7: One more "One more "One more "One more "One more "One more "One more "One more LUL and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out

노트

  • 선행 / 트레일 링 개행이 허용됩니다
  • 대문자를 유지해야합니다
  • 코드는 완전한 프로그램 또는 함수일 수 있습니다.
  • 인쇄하는 대신 선택한 언어로 문자열 또는 이와 동등한 문자열을 반환 할 수 있습니다
  • 1대신에 색인을 생성 할 수 있습니다0

6
"시작과 끝을 추가 할 수 있습니까?
Rod

8
@로드 : 아니오, 당신은 할 수 없습니다.
shooqie 2012 년

27
이 도전의 제목은 네덜란드어 사용자에게는 매우 어색합니다 ...
Pakk

5
@Pakk 그러나 사실입니다. 나는 LUL을보고, 나는 여기서
나옵니다

7
이것은 YOLO : You Only YOLO once --> YOYOLOO. You Only YOYOLOO Once --> YOYOYOLOOO등 으로 확장 될 수 있습니다 .
DJMcMayhem

답변:


24

파이썬 2 , 56 바이트

lambda x:('"One more '*x+'LUL'+' and I\'m out"'*x)[1:-1]

온라인으로 사용해보십시오!
1 인덱싱


3
나는 [1:-1]끝에는 시작과 끝에 큰 따옴표를 자른다 고 가정 합니까?
Nzall

@Nzall 정확하게
Rod

x = 0의 경우 'U'가 표시되지만 "하나 더 LUL이 표시됩니다."입니다.
Wolfram

3
@Wolfram 그것은 1 색인,이 정보를 답변에 추가했습니다
Rod

18

자바 스크립트, 57 56 54 52 바이트

f=q=>`One more ${q?`"${f(q-1)}"`:"LUL"} and I'm out`

테스트 스 니펫 :

f=q=>`One more ${q?`"${f(q-1)}"`:"LUL"} and I'm out`
<input type=number min=0 oninput=o.textContent=f(+this.value)>

<p id=o>

어떤 이유로 입력이 0이면 스낵 스 니펫이 버그가 발생 하지만 그렇지 않은 경우 작동합니다. 처럼 부르십시오 f(4).

설명

f=q=>                      //declares a function f with argument q
`One more ... and I'm out` //hardcoded string
 ${q?`"${f(q-1)}"`:"LUL"}  // does recursion based on q
                           // if q is true, ie not 0, recurse
                           // else return "LUL"

먼저 input잘못된 HTML 속성입니다. 제거하고 싶을 수도 있습니다. 둘째, 입력 값을 숫자가 아닌 문자열로 가져 오기 때문입니다. 그래서 "0"truthy 동안은 0falsy이다. 그것을 처리하는 가장 쉬운 방법 은 그것을 전달할 때 +앞에 두는 this.value것입니다.
Patrick Roberts

@PatrickRoberts 감사합니다, 왜 추가 input필드 가 있는지 모르겠습니다 :)
Kritixi Lithos

좋아, 아마을 사용하려고했을 것 .replace입니다.
ETHproductions

숫자가 음수이면 스택이 오버플로됩니다.
programmer5000

@ programmer500 입력 번호는 음이 아니므로 문제가되지 않습니다.
Kritixi Lithos

11

Befunge, 91 바이트

&:00p10p>"tuo m'I dna "1v
09p00-1<^g09p01-1_v#:g0<<vg
>>00g:#^_$>:#,_@  >$"LUL">" erom enO"

온라인으로 사용해보십시오!

이것은 다양한 구성 요소가 강조 표시된 소스 코드의 분석입니다.

Source code with execution paths highlighted

*반복 횟수 N 을 읽고 두 개의 복제본을 메모리에 저장합니다.
*그런 다음 첫 번째 N 을 카운트 다운 하여 스택에 "및 I 'm out"의 여러 사본을 역순으로 밀어 넣습니다. 각 추가 사본은 따옴표를 사용하여 이전 사본과 구분됩니다. 인용 부호는 시퀀스를 사용하여 생성되며 90g(기본적으로 소스의 첫 번째 행에서 사본을 읽음) 가장 짧은 방법이기 때문입니다.
*이 첫 번째 루프가 완료되면 스택에 "LUL"을 적용합니다 (기술적으로는 역순이지만 회문이더라도 분명히 차이가 없습니다).
*그런 다음 오른쪽 경계를 가로 질러, 경기장 왼쪽으로 다시 감은 또 다른 루프가 있습니다. 이번에는 두 번째 N을 카운트 다운합니다, "복수"의 여러 사본을 스택에 다시 밉니다 (반대). 그리고 다시, 각각의 추가 사본은 따옴표로 이전과 분리됩니다.
*두 번째 루프가 완료되면 전체 문구가 스택에 (역순으로) 있으므로 간단히 작성하면됩니다.


밀어 넣기를 잘 사용합니다 ". 설명 주셔서 감사합니다
MildlyMilquetoast


6

C ++, 118 + 16 = 134 바이트

auto L(int x){std::string k="One more LUL and I'm out",r=k;for(int i=0;i++<x;)r.replace(i*10-1,3,'"'+k+'"');return r;}

#include<string> -+16

"LUL"을 전체 문자열 N 번으로 바꿉니다.

더 나은 골프를 가진 사람이 있습니까?

온라인으로 사용해보십시오!

Kritixi Lithoshvd 덕분에 대규모 도움을 주셔서 감사합니다 .


@Kritixi 이제 스 니펫이 있습니다.
Matthew Roh

이것은 더 짧습니다. 그리고 <string>확실하지 않은
바이트 수에

또한 당신은을 변경할 수 있습니다 for(int i=0;i<x;i++)for(int i=0;i++<x;)
Kritixi LITHOS

또한, 2 바이트 r.find("L")보다 짧습니다 r.find("LOL"):)
Kritixi Lithos

재귀 버전 : 온라인으로 사용해보십시오! 또한 TIO에서 머리글과 바닥 글을 사용하여 추가 항목을 사용할 수 있으며 바이트 수로 코드 만 계산할 수 있습니다.
nmjcman101

5

자바 스크립트 (ES6), 68 바이트

f=(x,y="LUL")=>~x?f(--x,`"One more ${y} and I'm out"`):y.slice(1,-1)

처럼 전화하십시오 f(n).

당신은 또한 그것을 좋아 f(n, "LUL")하고 LUL을 당신이 원하는 어떤 단어로 바꿀 수도 있습니다 .


질문은 단지 "LUL"을 요구하기 때문에 텍스트를 변경하고 약간의 바이트를 골라내는 유연성을 제거 할 수 있습니다. 어쨌든 좋은 해결책, +1
Farhan Anam

2
@ FarhanAnam 나는 이것이 내가 편집 할 좋은 시작 게시물이라고 생각했지만 게시 한 후에 누군가가 더 나은 답변을 게시하는 것을 보았지만 아무리 열심히 골프를 치더라도 나는 항상 그들의 답변을 얻었습니다. 그래서 나는 누군가가 그것에 재미를 가질 수 있도록 유연성을두고 여기에 두어야한다고 생각했습니다.

5

V , 39 37 바이트

대체 방법으로 @KritixiLithos를 사용하여 2 바이트

iOne more LUL and I'm outÀñÓLUL/"."

온라인으로 사용해보십시오!

16 진 덤프 :

00000000: 694f 6e65 206d 6f72 6520 4c55 4c20 616e  iOne more LUL an
00000010: 6420 4927 6d20 6f75 741b c0f1 d34c 554c  d I'm out....LUL
00000020: 2f22 122e 22                             /".."

그것은 LOL이며 LOL이 아닙니다.)
geisterfurz007

4

자바, 79 77 바이트

골프 :

String f(int l){return"One more "+(l<1?"LUL":'"'+f(l-1)+'"')+" and I'm out";}

테스트를 거치지 않은 언 골프 드 :

public class OneMoreLulAndImOut {

  public static void main(String[] args) {
    OneMoreLulAndImOut obj = new OneMoreLulAndImOut();
    for (int i = 0; i < 8; ++i) {
      System.out.println(Integer.toString(i) + ": " + obj.f(i));
    }
  }

  String f(int l) {
    return "One more " + (l < 1 ? "LUL" : '"' + f(l - 1) + '"') + " and I'm out";
  }    
}

프로그램 출력 :

0: One more LUL and I'm out
1: One more "One more LUL and I'm out" and I'm out
2: One more "One more "One more LUL and I'm out" and I'm out" and I'm out
3: One more "One more "One more "One more LUL and I'm out" and I'm out" and I'm out" and I'm out
4: One more "One more "One more "One more "One more LUL and I'm out" and I'm out" and I'm out" and I'm out" and I'm out
5: One more "One more "One more "One more "One more "One more LUL and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out
6: One more "One more "One more "One more "One more "One more "One more LUL and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out
7: One more "One more "One more "One more "One more "One more "One more "One more LUL and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out" and I'm out

당신은 모두 변경할 수 있습니다 "\""'"'2 바이트를 저장 (단일 문자를).
Kevin Cruijssen

1
@ KevinCruijssen 감사합니다, 나는 내가 놓친 것이 있다는 것을 알았습니다.


3

C #, 125 바이트

n=>{string f="One more {0} and I'm out",s=f;for(int i=0;i++<n;)s=string.Format(s,$"\"{f}\"");return string.Format(s,"LUL");};

대신 문자열 보간을 사용할 수 있는지 궁금합니다 Format.
Bob

변경 string하기 위해 var2 바이트를 저장합니다.
devRicher

@devRicher 나는 두 변수를 선언하고있어 수 없기 때문에
TheLethalCoder

나는 이미 그것을 사용하고 @Bob, 확실하지 내가 다른 곳에서 사용할 수있는 경우
TheLethalCoder

죄송합니다. 죄송합니다.
Bob

3

C, 140 111 바이트

골프 질문에 대한 첫 번째 시도 .. 골프 :

#define F printf(
#define P 1&&putchar(34)
int a=0;void q(n){a=a?a:n,n?n>0?F"One more "),n-P:n?n+P,F" and I'm out"):0:F"LUL"),n+a?q(n-1):0;}

q (0)이 LUL을 제공하기 때문에 잘못된 출력이라는 것을 깨달았습니다. 다음 시도 :

#define o(Q) O(Q,n?34:0);
#define O printf
void q(int n){o("One more %c")n?q(n-1):O("LUL"),o("%c and I’m out")}

예제 프로그램 (OSX에서 GCC로 테스트) :

#define o(Q) O(Q,n?34:0);
#define O printf
void q(int n) {o("One more %c")n?q(n-1):O("LUL"),o("%c and I’m out")}

int main() {
    q(0),putchar('\n');
    q(1),putchar('\n');
    q(2),putchar('\n');
    q(3),putchar('\n');

    return 0;
}

출력 제공

One more LUL and I’m out
One more "One more LUL and I’m out" and I’m out
One more "One more "One more LUL and I’m out" and I’m out" and I’m out
One more "One more "One more "One more LUL and I’m out" and I’m out" and I’m out" and I’m out

3

매스 매 티카, 69 68 바이트

찾기 어려운 바이트 1 개를 저장 한 Martin Ender에게 감사합니다!

""<>Nest[{q="\"",{"One more ",#," and I'm out"},q}&,"LUL",#+1][[2]]&

음이 아닌 정수 인수를 가져 와서 문자열을 반환하는 Unnamed 함수. Nest초기 인수에 함수를 반복적으로 적용합니다. 이 경우 함수는 적절한 단어와 따옴표로 인수를 둘러 쌉니다. 우리는 시간을 시작 "LUL"하고 반복합니다 N+1. 그 결과 전체 문구를 포함하는 원치 않는 따옴표가 표시되지만 [[2]]그 사이의 내용 만 유지합니다. 마지막 ""<>으로 결과적으로 많이 중첩 된 목록을 단일 문자열로 바꿉니다.

이전 제출 :

""<>Nest[{o,q="\"",#,q,a}&,{o="One more ","LUL",a=" and I'm out"},#]&

1
다음에서 시작하여 바이트를 제거했습니다 LUL.""<>Nest[{q="\"",{"One more ",#," and I'm out"},q}&,"LUL",#+1][[2]]&
Martin Ender

아하! [[2]]! 그 첫 번째 원치 않는 따옴표를 해결하는 방법입니다 : D
Greg Martin

3

C #, 119 85 71 바이트

string m(int n)=>$"One more {(n<1?"LUL":$"\"{m(--n)}\"")} and I'm out";

@Luc 덕분에 14 바이트 절약


LINQPad를 통해 작동하는 것처럼 보입니다. 좋은. 중첩 된 인터럽트 스트링은 약간의 소리가 들리지만, 먼저 3 진에서 질식하는 것처럼 보입니다.
Bob

나는 그것이 작동하도록 노력 데 문제를 @Bob 이유로 인해 따옴표의, 또는 적어도 그 때문에 내가 처음 제거 할 수없는 것 내가 그것을 일으키는 생각이다 string.Format둥지를
TheLethalCoder

어때 $ "하나 더 {(n <1?"LUL ": $"\ "{m (-n)} \" ")} 그리고 나왔습니다"
Luc

@Luc 당신은 그것을 시도 했습니까? 왜냐하면 나는 비슷한 일을했는데 그것이 효과가 없었습니다. 내 전화에 지금 테스트 할 수 없습니다
TheLethalCoder

어떤 경우에도 string.Format을 +로 바꾸면 73자를 얻을 수 있습니다.
Chris F Carroll


2

R, 97 바이트

function(n){s="One more LUL and I'm out";while(n){s=sub("LUL",paste0('"',s,'"'),s);n=n-1};cat(s)}

언 골프 드 :

function(n) {
  s = "One more LUL and I'm out";
  while(n) {
    s = sub("LUL", paste0('"', s, '"'), s);
    n = n - 1
  };
  cat(s)
}

2

R, 100 97 92 바이트

"하나 더 재귀적인 기능과 나는 외출 중이다"

f=function(n)paste("One more",`if`(n<1,"LUL",paste0('"',f(n-1),'"')),"and I'm out");cat(f(scan()))

편집 : 비 재귀 접근 방식이 약간 짧습니다.

x="One more ";y=" and I'm out";cat(x,rep(c('"',x),n<-scan()),"LUL",rep(c(y,'"'),n),y,sep="")




1

루아, 101 바이트

i,f,g='"One more ',' and I\'m out"',io.read()+1 print((i:rep(g).."LUL"..f:rep(g)):sub(2,g*24-(g-2)))

명백한 문자열 시도. 반복 "One more하여 and I'm out"정확하게 +1을 입력하고 그 LUL사이에 첫 번째와 마지막 따옴표를 제거합니다.


1

하스켈, 51 바이트

1의 색인

f 0="LUL";f n="One more \""++f(n-1)++"\" and I'm out"

7
이것은 LUL따옴표 로 잘못 인쇄 된 것 같습니다 .
Zgarb

을 사용하여 0에서 색인을 쉽게 만들 수 f -1="LUL"있지만 많은 새로운 기호없이 추가 따옴표를 제거하는 방법을 알 수 없습니다.
Wolfram

1

루비, 70 바이트

def l x,t="LUL";x.times{t='"One more %s and I\'m out"'%t};t[1..~1];end

매번 형식 문자열을 통해 마지막 문자열을 둘러싸면서 주어진 양만큼 반복합니다.

인덱스는 하나에서 시작합니다.


1

스택, 54 바이트

('"One more ' ' and I''m out"')*'LUL'join'^.|.$'εrepl

여기 사용해보십시오! "기능"사용법 예 :

1
('"One more ' ' and I''m out"')*'LUL'join'^.|.$'εrepl
out

56 바이트 당 1 개 :

@n'One more LUL and I''m out':@o['LUL' '"'o'"'+ +repl]n*

1

파이썬 3, 68 바이트

def f(a):return('"One more '*a+'LUL'+(' and I%sm out"'%"'")*a)[1:-1]


이것은 잘못된 출력을 제공합니다. *a대신에 의미 했습니까 *5?
mbomb007

그래, 고마워, 나는 그것을 넣을 줄
몰랐다

1

CJam, 51 49 바이트

" and I'm out\"""\"One more "li1+_@*"LUL"+1>@@*W<

온라인으로 사용해보십시오

언 골프 드 :

" and I'm out\""   "\"One more " // Push two strings to the stack
     l i 1 +                     // Read a number and add 1
     _ @                         // Copy number and rise '"One more ' to the top
     *                           // Multiply '"One more ' by a number
     "LUL" +                     // Add "LUL"
     1>                          // Chop the first quote
     @@                          // Push the result down
     *                           // Multiply ' and I\'m out"' by a number
     W<                          // Chop the last quote

W-1 대신에 1 바이트를 절약 할 수 있습니다
Business Cat

1
여기에 더이 단축 다른 트릭은 다음과 같습니다 tio.run/nexus/cjam#@6/... ... 난을 피하기 위해 노력에 의해 시작 \"하나의 문자열을 갖고, 추가하여 "모두가 끝납니다 `. 그런 다음 /첫 번째 부분이 더 짧기 때문에 길이로 할 수없는 문자열을 분할해야했습니다 . 그래서 줄 바꿈을 구분 기호로 사용하고했습니다 N/. 이제 목록에 두 부분이 모두 있으므로을 사용하여 두 부분을 한 번에 쉽게 반복 할 수 있습니다 f*. 그리고 LUL끝에 간단한 조인 ( *)으로 삽입됩니다 .
Martin Ender

멋지지만, 이것을 더 짧게하는 것보다 완전히 다른 솔루션처럼 보입니다. :) CJam의 첫 번째 프로그램이므로 이러한 트릭을 몰랐습니다. 감사합니다. 이 솔루션을 답변에 추가해야합니까?
Wolfram

@ 울프 람 그것은 당신에게 달려 있습니다. 나는 당신이 그것을 사용하게되어 기쁘다 (그렇지 않으면 나는 언급하지 않았을 것이다;)).
Martin Ender 2012 년

@ 울프 람 좋은 첫 노력! Martin의 답변을 통해 많은 혜택을 볼 수 있습니다
시몬스


1

매스 매 티카, 65 63 바이트

Nest["\"One more "<>#<>" and I'm out\""&,"LUL",#]~StringTrim~_&

챌린지를인지하여 2 바이트를 줄이면 1- 인덱싱이 가능합니다.


1

PHP

안녕하세요, 지금까지 두 가지 방법을 찾았습니다.

대체 방법은 1- 인덱스 (121 바이트) 입니다.

function f($x){$v='One more LUL and i\'m out';$t=$v;for($i=1;$i<=$x;$t=str_replace('LUL','"'.$t.'"',$v),$i++);return $t;}

재귀 방식 (86 바이트) .

function r($n){$v=($n==0)?'LUL':'"'.r($n-1).'"';return'One more '.$v.' and i\'m out';}

PHP에서 프로그램은 거의 항상 함수보다 짧습니다.
Titus

1

C ++, 80 + 16 = 96 바이트

std::string L(int c){return"One more "+(c?'"'+L(--c)+'"':"LUL")+" and I'm out";}

#include<string> -+16

언 골프 드 :

std::string LUL(int count) {
    return "One more " + (count? ('"' + LUL(--count) + '"') : "LUL") + " and I'm out";
}

재귀 적으로 호출하고 문자열 추가를 사용합니다. 꽤 직설적 인. 다른 말을 할 수 있습니까? ungolfed 버전조차도 본질적으로 하나의 라이너입니다.

온라인으로 사용해보십시오!


1

체다 , 71 바이트

i->('One more "'*i).slice(0,-1)+'LUL '+('and I\'m out" '*i).slice(0,-2)

온라인으로 사용해보십시오!


어쩌면 _ f ->바이트를 절약 할 수 있는 문법으로 재귀를 시도해보십시오
Downgoat

어, 나는 그 구문이 어떻게 작동하는지에 익숙하지 않으며, 문서에서 구문이나 예제를 찾을 수 없습니다.
Pavel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.