string이 주어지면 소스 코드의 표시 순서에 따라 x
문자를 x
정렬 하여 출력하십시오 .
예
Source: ThisIs A Test
Input: Is it a Test?
Output: TissI etta?
Source: Harry - yer a wizard.
Input: I'm a what?
Output: aa wh'?Imt
Source: Mr. H. Potter, The Floor, Hut-on-the-Rock, The Sea
Input:
Output:
규칙
- 표준 허점 및 I / O 규칙 적용
- 입력 및 출력은 문자열, 문자 목록 또는 바이트 목록 일 수 있습니다.
- 소스에서 문자를 여러 번 사용하는 경우 첫 번째 항목을 사용하십시오.
- 하나 이상의 문자가 소스에 나타나지 않으면 끝에 있어야합니다. 그들의 순서는 중요하지 않으며 일관성이 없어도됩니다.
- 소스는 비어 있지 않아야합니다
- 줄 바꿈은 다른 문자와 동일하게 취급됩니다.
- 코드가 실행되는 순서는 중요하지 않습니다. 원시 문자열입니다.
- 입력은 코드와 동일한 인코딩입니다.
- 입력은 바이트가 아닌 문자로 정렬됩니다.
- 정렬은 대소 문자를 구분합니다
- 이것은 code-golf 이므로 각 언어마다 가장 짧은 바이트 단위의 대답이 승리합니다!
let f = (s, i, o) => o.split("").map(x => [x, s.indexOf(x) == -1 ? s.length + 100 : s.indexOf(x)]).sort(([, a], [, b]) => a - b).map(([x]) => x).join("") === o && i.split("").sort().join("") === o.split("").sort().join("");let g = (s, i) => i.split("").map(x => [x, s.indexOf(x) == -1 ? s.length + 100 + Math.random() : s.indexOf(x)]).sort(([, a], [, b]) => a - b).map(([a]) => a).join("");$(() => $("button").click(() => $("#result").text(f($("#source").val(), $("#input").val(), $("#output").val()) ? "Valid" : `Invalid; example output: \`${g($("#source").val(), $("#input").val())}\``)));
body,label{display: flex;flex-direction: column;}*{white-space: pre;font-family: Inconsolata, Consolas, mono-space;font-size: 14px;}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><label>Source: <textarea id="source">ThisIs A Test</textarea></label><label>Input: <textarea id="input">Is it a Test?</textarea></label><label>Output: <textarea id="output">TissI etta?</textarea></label><div><button>Validate</button> <span id="result"></span></div>
답변
Python 3.8 (pre-release), 102 100 96 85 79 76 68 61 59 60 bytes
c="print(sorted(x:=input(),key=('c=%r;'%c+x).find))";exec(c)
-2 bytes by using this
-4 bytes by realizing that <0
== ==-1
and removing the unnecessary +1
-11 bytes thanks to Neil
-6 bytes thanks to dzaima
-3 bytes thanks to rod
-8 bytes thanks to negative seven pointing out that the program can output a list of chars
-7 bytes due to Embodiment of Ignorance switching back to Python 3.8 and using :=
-2 bytes due to Jo King switching out the variable name s for c, so we could leave out the ;c
+1 bytes because negative seven pointed out that it wasn’t filtering ;
correctly
답변
APL (Dyalog Unicode), 14 bytesSBCS
Anonymous tacit prefix function.
'''∘⍋⊃¨⊂'∘⍋⊃¨⊂
⊂
enclose argument (to act on it as a whole)
…⊃¨
from that, pick one character for each of the following indices:
∘⍋
the indices that would sort the argument in the the order given by the following string (all non-members go in order of appearance at the end):
'''∘⍋⊃¨⊂'
the characters '∘⍋⊃¨⊂
답변
C# (Visual C# Interactive Compiler), 48 bytes
n=>n.OrderBy((@"n=>.OrdeBy(@""+)Ixf"+n).IndexOf)
답변
JavaScript (Node.js), 60 58 56 bytes
-2 bytes from Jo King
f=_=>_.sort((a,b)=>(p=g=>`f=${f+g}`.indexOf(g))(a)-p(b))
답변
답변
Ruby, 57 bytes
->s{s.sort_by{|o|%{->s{.ort_by|%}index()9}.index(o)||99}}
Fairly straightforward, assuming I haven’t missed a golfing trick. Take in a list of characters and sort by their index in a string consisting of all the uniq characters in the code in order of their appearance. Often their first appearance is in that very string, but that doesn’t change the order.
답변
05AB1E, 24 22 21 bytes
Σ"Σ"'"«"'«Rrk}"«Rrk}R
Explanation:
Σ } # Sort
"Σ" # Σ string literal
'" # " string literal
« # Concatenate last two literals
"'«Rrk}" # '«Rrk} another literal
« # Concat again
R # Reverse literal (so: }krR'«'"Σ)
r # reverse stack
k # find the current sorting index in our code string
R # reverse our sorted string
First time trying stuff in 05AB1E so probably lots to be saved