이 코멘트 체인에서 영감을 얻은 ...
나는
enklact
이 도전에서 벗어날 길을 원하지만 할 수는 없다 ...@ETHproductions to enklact (v) : 고유 요소로 구성된 하위 섹션을 사용하여 룩업 테이블을 구현합니다.
Enklacting은 조회 테이블을 압축하는 매우 유용한 방법입니다. 예를 들어 다음과 같은 색상 목록이 있다고 가정 해 보겠습니다.
red
green
blue
yellow
purple
orange
입력으로 색상을 가져 와서이 목록에서 색인을 반환하려면 다음과 같은 간단한 방법이 있습니다.
["red", "green", "blue", "yellow", "purple", "orange"].index(input())
그러나 우리는 더 적은 바이트로 이것을 할 수있는 방법이 있습니다 :
"rgbypo".index(input()[0])
각 문자열의 첫 번째 (또는 0 번째) 인덱스가 고유하기 때문에 작동합니다. 이 예는 분명하지만 때로는 조금 더 어려워요. 이 목록에 대한 조회 테이블을 만들려면 어떻게해야합니까?
Sweet Onion Chicken Teriyaki
Oven Roasted Chicken
Turkey Breast
Italian BMT
Tuna
Black Forest Ham
Meatball Marinara
이 경우, 우리는 이것을 할 수 없습니다 :
"SOTITBM".index(input()[0])
로 시작하는 두 개의 다른 입력 'T'
, 즉 "Tuna"및 "Turkey" 가 있기 때문 입니다. 다른 인덱스를 봐야합니다. 각 문자열의 4 번째 인덱스를 보면 모두 고유 한 것을 알 수 있습니다. 그래서 우리는 이것을 할 수 있습니다 ...
"enklact".index(input()[3])
이 경우 "enklaction string" 은 "enklact"입니다.
그것은 오늘날의 도전으로 이어집니다.
문자열 목록이 제공되면 유효한 고정 문자열을 반환하십시오. 즉, 문자열 목록이 주어지면 각 문자가 고유 한 새 문자열을 반환하고 문자열은 각 문자열의 i 번째 문자를 결합하여 형성됩니다.
유효한 고정 문자열이없는 경우 제출시 빈 문자열 또는 일관된 잘못된 값을 반환해야합니다. 평소와 같이 기능 또는 전체 프로그램이 허용되며 입력 / 출력 형식이 허용됩니다 (이유가 있음).
각 문자열에는 인쇄 가능한 ASCII 만 포함되며이 문제는 대소 문자를 구분합니다.
이것은 code-golf 이므로 선택한 언어로 가능한 가장 짧은 프로그램을 작성하십시오!
테스트 사례
Input:
Programming
Puzzles
Code
Golf
Output (any one of these):
"ozdl"
"gzef"
Input:
the quick
brown fox
jumped over
lazy dogs
Output:
"tbjl"
"hrua"
"eomz"
" wpy"
"qne "
"if o"
"kxvs"
Note that "u dd" and "coog" are not valid.
Input:
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Output:
""
Input:
AbC
aBc
bbC
Output:
"Aab"
Input:
@#$%^_
Hello_World
How are you?
Output:
"#eo"
"$lw"
"%l "
"^oa"
Input:
a
ab
ac
Output:
""