청동 플라크 의 받침대에있는 자유의 여신상 시 “표시 새로운 거상 읽고 일부가 엠마 나사로에 의해을”
피곤하고 가난한 사람들,
숨 쉬고 싶어하는 당신의 뭉친 사람들,
끔찍한 해안을 거부하십시오.
집없는 노숙자에게 보내십시오,
나는 황금 문 옆에 램프를 들어 올립니다!
이 과제에 대한시의이 섹션을 단순화하기 위해 모든 대문자를 만들고 /
쉼표와 기타 문장 부호를 그대로 유지하면서 개행을 슬래시 ( ) 로 바꿉니다 .
GIVE ME YOUR TIRED, YOUR POOR,/YOUR HUDDLED MASSES YEARNING TO BREATHE FREE,/THE WRETCHED REFUSE OF YOUR TEEMING SHORE./SEND THESE, THE HOMELESS, TEMPEST-TOST TO ME,/I LIFT MY LAMP BESIDE THE GOLDEN DOOR!
이 문자열을 S라고 부릅니다 . md5 hash가 8c66bbb9684f591c34751661ce9b5cea
있습니다. 선택적으로 후행 줄 바꿈이 있다고 가정 할 수 있습니다.이 경우 md5 해시는 0928ff6581bc207d0938b193321f16e6
입니다.
하나의 문자열에 걸리는 프로그램이나 함수를 작성. 문자열이 S 인 경우 , 한 줄에 하나씩 순서대로 출력 되며 ,시에서 Lady Liberty가 요구하는 사람들의 유형을 설명하는 6 개의 문구는 다음과 같습니다.
TIRED
POOR
HUDDLED MASSES YEARNING TO BREATHE FREE
WRETCHED REFUSE OF YOUR TEEMING SHORE
HOMELESS
TEMPEST-TOST
(이 정확한 문자열은 선택적으로 단일 후행 줄 바꿈이 뒤에 오는 입력 S의 출력이어야합니다.)
S 가 아닌 입력 문자열이 하나 이상인 경우 출력은 위의 6 줄 이외의 문자열이어야합니다. 입력이 유일한 경우 에만 출력하는 것처럼 간단 할 수 있습니다 . 이 규칙은 순수한 하드 코딩을 방지하는 것입니다. 그렇지 않으면 입력 문자열이 S가 아닌 경우 코드에서 어떤 작업을 수행 할 수 있습니다.TIRED
GIVE ME YOUR TIRED
이것은 본질적으로 당신이 상대적으로 가까운 출력되는 입력을 주어 일정한 출력 도전이다. 당신은 물론 대부분의 입력을 무시하고 출력을 하드 코딩하지만 말에 더 좋을 수도, 출력에 필요한 입력의 문자열을 제거 할 수있다.
참고로, 여기에서 제로 지수 및 S에서 여섯 개 출력 라인의 길이는 :
13 5, 25 4, 36 39, 81 37, 136 8, 146 12
의 짧은 코드는 승리 바이트.
답변
젤리 , 19 바이트
Ẇ“©ØḌKAƑ⁶2ɼU’b8ȷ¤ịY
온라인으로 사용해보십시오! 또는 다른 텍스트로 시도하십시오.
어떻게?
입력 문자열의 모든 비어 있지 않은 연속 슬라이스의 목록에 인덱스 및 라인 피드와 결합한다.
Ẇ“©ØḌKAƑ⁶2ɼU’b8ȷ¤ịY - Main link: s
¤ - nilad followed by link(s) as a nilad
“©ØḌKAƑ⁶2ɼU’ - base 250 number, 27003436588466956354336
8ȷ - 8 * 1e3 = 8000
b - convert to base, [824,635,7086,6796,1544,2336]
ị - index into
Ẇ - all non-empty contiguous slices of s
Y - join with line feeds
이전 코드, 22 바이트 :
“ÇŒȷœ%LRw⁹ƊƓɠ‘ṬœṗµḊm2Y
입력 문자열을 분할하고 매 초마다 요소를 가져와 라인 피드와 결합합니다. “ÇŒȷœ%LRw⁹ƊƓɠ‘
코드 페이지 인덱스의리스트이며, Ṭ
그 인덱스에서의 것들과 0들의리스트를 만들어, œṗ
파티션이 목록의 truthy 인덱스에서의 입력은 Ḋ
, 첫 번째 요소를 제거 m2
매초 요소를 취하고, Y
광고 피드와 결합한다.
답변
JavaScript (ES6), 128 69 바이트
입력이와 (과) 다른 경우 빈 줄이나 가비지가 출력 될 수 있습니다 S
.
let f =
s=>[837,1604,2343,5221,8712,9356].map(n=>s.substr(n>>6,n&63)).join`
`
console.log(f(`GIVE ME YOUR TIRED, YOUR POOR,
YOUR HUDDLED MASSES YEARNING TO BREATHE FREE,
THE WRETCHED REFUSE OF YOUR TEEMING SHORE.
SEND THESE, THE HOMELESS, TEMPEST-TOST TO ME,
I LIFT MY LAMP BESIDE THE GOLDEN DOOR!`))
console.log(f(`THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG`))
답변
답변
수학 , 71
Column@StringTake[#,List@@@{14|18,26|29,37|75,82|118,137|144,147|158}]&
답변
PowerShell , 72 바이트
"$args"-split'[/,.]'-replace'^.*?(YOUR|\bTHE) |^ | TO ME'-match'^[^S G]'
설명
이것은 꽤 엉뚱한 정규식 솔루션입니다.
분할에 배열 문자열 /
이나 .
또는 ,
다음의 배열을 제공하는 제 1 패턴과 일치 각 스트링의 교체 부품, -replace
D 문자열 다음 사용 -match
없애는 제 2 패턴과 일치하는 요소들의 어레이 (반환 연산자 빈 줄과 이전에 필터링되지 않은 2 줄).
답변
수학, 86 바이트
Riffle[s=#;s~Take~#&/@{{14,18},{26,29},{37,75},{82,118},{137,144},{147,158}},"
"]<>""&
이름이없는 함수는 문자 목록을 입력으로 가져 와서 문자열을 반환합니다. 입력의 관련 하위 문자열을 추출하고 개행으로 연결합니다.
답변
TI 기본, 58 바이트
매우 간단합니다. Disp
와 같으 println
므로 사이에 줄 바꿈이 있습니다.
Disp "TIRED","POOR",sub(Ans,37,39),sub(Ans,82,37),"HOMELESS",sub(Ans,147,12