이 도전 을 도와 주신 @KritixiLithos에게 감사드립니다 !
V 는 코드 골프 과제에 vim을 사용하고 확장 할 수 있도록 작성한 프로그래밍 언어입니다. 첫 번째 커밋 은 2016 년 3 월 3 일에 이루어졌으며, 오늘날 V는 1 살이되었습니다. 우후
V의 첫해에 걸쳐 4 명의 다른 기여자로부터 176 개의 커밋이 있었고, 12 명의 다른 사용자로부터 140 개의 답변이 있으며 , 너무 많은 깨진 중복 연산자로 계산할 수 없습니다 . @Dennis가 관대하게 호스팅 하는 온라인 통역사 가 12 월 이후 거의 8,000 회 운영되었습니다 .
V의 생일을 축하하기 위해 도전합시다! V의 대부분의 기능은 문자열 조작과 아스키 아트 를 염두에두고 설계되었으므로 V를 축하하는 모든 과제는 아스키 아트에 관한 것이어야합니다. 따라서 오늘 당면 과제는 단어를 입력으로 받아 해당 단어를 V 모양으로 바꾸는 것입니다. 예를 들어 입력 "Hello"는 다음 V를 제공해야합니다.
Hello olleH
Hello olleH
Hello olleH
Hello olleH
Hello olleH
HellolleH
HellleH
HeleH
HeH
H
V의 모양에 대한 자세한 내용은 다음과 같습니다. 입력 문자열의 길이 가 n 자인 경우 V의 n*2
행은 커야합니다. 첫 번째 줄은 다음으로 구성되어야합니다.
<input string><(n*2) - 1 spaces><input string reversed>
각각의 줄 바꿈에서 한 칸의 공백이 시작 부분에 추가되고 문자열의 양쪽이 서로를 향해 이동하여 겹치는 문자를 제거합니다. 입력의 첫 문자 인 마지막 줄까지. 각 줄의 후행 공백은 허용되며 후행 줄 바꿈도 허용됩니다.
공백이없는 입력은 항상 인쇄 가능한 ASCII 라고 가정 할 수 있으며 합리적인 방법으로 입력 및 출력 할 수 있습니다. 다음은 더 많은 샘플 입력입니다.
Happy:
Happy yppaH
Happy yppaH
Happy yppaH
Happy yppaH
Happy yppaH
HappyppaH
HapppaH
HapaH
HaH
H
Birthday:
Birthday yadhtriB
Birthday yadhtriB
Birthday yadhtriB
Birthday yadhtriB
Birthday yadhtriB
Birthday yadhtriB
Birthday yadhtriB
Birthday yadhtriB
BirthdayadhtriB
BirthdadhtriB
BirthdhtriB
BirthtriB
BirtriB
BiriB
BiB
B
V!:
V! !V
V! !V
V!V
V
~:
~ ~
~
물론 이것은 코드 골프 이기 때문에 표준 허점은 금지되어 있으며 목표는이 작업을 완료하기 위해 가능한 가장 짧은 프로그램을 작성하는 것입니다. 행복한 골프!
가치가있는 것은 vim 답변을위한 소프트 스팟이 있으므로 vim 또는 V 사용에 대한 가상 보너스 포인트는 있지만 모든 언어가 허용됩니다. :)