Diberikan string x
, output karakter dalam x
diurutkan sesuai dengan urutan penampilan dalam kode sumber Anda.
Contohnya
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:
Aturan
- Berlaku celah standar & aturan i / o
- Input & output dapat berupa string, daftar karakter, atau daftar byte.
- Jika karakter digunakan beberapa kali dalam sumber, gunakan kejadian pertama.
- Jika satu atau lebih karakter tidak muncul di sumber, mereka harus di akhir; pesanan mereka tidak penting, juga tidak harus konsisten.
- Sumber harus tidak kosong
- Baris baru diperlakukan sama dengan karakter lain.
- Urutan di mana kode dieksekusi tidak masalah; hanya benang mentah.
- Input dalam pengkodean yang sama dengan kode.
- Input diurutkan berdasarkan karakter, bukan oleh byte.
- Penyortiran peka huruf besar-kecil
- Ini adalah kode-golf , jadi jawaban terpendek dalam byte untuk setiap bahasa menang!
x
dikodekan dalam UTF-8 atau UTF-16 jika solusi kita tidak dikodekan dalam Unicode sama sekali, dan karakter Unicodex
mewakili karakter dalam halaman kode solusi? Misalnya, beberapa bahasa golf menggunakan halaman kode khusus untuk mengurangi jumlah byte mereka tetapi masih dapat dibaca dengan mata telanjang.Jawaban:
Python 3.8 (pra-rilis) ,
1021009685797668615960 byteCobalah online!
-2 byte dengan menggunakan ini
-4 byte dengan menyadari bahwa
<0
====-1
dan menghapus yang tidak perlu+1
-11 byte terima kasih kepada Neil
-6 byte berkat dzaima
-3 byte berkat batang
-8 byte berkat negatif tujuh yang menunjukkan bahwa program dapat menampilkan daftar karakter
-7 byte karena Perwujudan Ketidaktahuan beralih kembali ke Python 3.8 dan menggunakan
:=
-2 byte karena Jo King mengganti nama variabel s untuk c, jadi kita bisa mengabaikan
;c
+1 byte karena negatif tujuh menunjukkan bahwa itu tidak disaring
;
dengan benarsumber
('s=%r;exec(s)'%s+x).find(x)
?('s=%r;exec(s)'%s).find(x)
dengan kode Anda akan membuatnya valid?input()
dan menyimpan 4 byte;
tidak diurutkan dengan benar dalam versi saat iniAPL (Dyalog Unicode) , 14 byte SBCS
Fungsi awalan diam-diam anonim.
⊂
sertakan argumen (untuk bertindak secara keseluruhan)...
⊃¨
dari itu, pilih satu karakter untuk masing-masing indeks berikut:∘⍋
indeks yang akan mengurutkan argumen dalam urutan yang diberikan oleh string berikut (semua non-anggota mengikuti urutan penampilan di akhir):'''∘⍋⊃¨⊂'
karakter'∘⍋⊃¨⊂
Cobalah online!
sumber
C # (Visual C # Interactive Compiler) , 48 byte
Cobalah online!
sumber
JavaScript (Node.js) ,
60 5856 byte-2 byte dari Jo King
Cobalah online!
sumber
f=...
. Jika demikian, harap sertakan dalam kiriman & jumlah byte Anda.Perl 6 , 56 byte
Cobalah online!
sumber
Ruby , 57 byte
Cobalah online!
Cukup mudah, dengan asumsi saya tidak melewatkan trik golf. Ambil daftar karakter dan urutkan berdasarkan indeks mereka dalam string yang terdiri dari semua karakter unik dalam kode sesuai dengan penampilan mereka. Seringkali penampilan pertama mereka berada di string itu, tetapi itu tidak mengubah urutannya.
sumber
05AB1E ,
242221 byteCobalah online!
Penjelasan:
Pertama kali mencoba barang di 05AB1E jadi mungkin banyak yang bisa diselamatkan
sumber
}krR«'«
. CATATAN:'
adalah karakter tunggal, jadi'"
sudah cukup (tidak seperti C # di mana ia membutuhkan trailing tambahan'
). Saat ini kode Anda pertama-tama mendorong stringΣ
, lalu string"
, lalu string«
, lalu string'«Rrk}
, dan kemudian menambahkan, membalikkan, membalikkan tumpukan, indeks. Penggunaan cerdas dari kebalikan dari string dan pada akhirnya! Saya akan melihat apakah saya dapat menemukan jawaban untuk jawaban Anda, dan akan menghapus jawaban saya setelahnya.}krR«'"Σ
. PS: Saya cenderung menggunakan=
(mencetak tanpa muncul) untuk tujuan debug kadang-kadang. Anda juga dapat menambahkan--debug-stack
sebagai argumen, tapi agak aneh di versi 05AB1E imho baru.Jelly ,
1614 byte (halaman Kode Jelly), 25 byte (UTF8)Cobalah online!
Program lengkap yang membutuhkan argumen tunggal, string yang akan diurutkan.
Terima kasih kepada @JonathanAllan karena telah menunjukkan bug!
Sesuai @EriktheOutgolfer, meskipun kode dapat dimasukkan menggunakan halaman kode Jelly, karakter yang diurutkan adalah yang setara dengan UTF-8 dan bukan byte dari sumber. Karena itu, saya juga memasukkan skor dalam byte UTF-8. Perhatikan hal yang sama mungkin berlaku untuk semua bahasa dengan halaman kode khusus.
Penjelasan
String di atas mengevaluasi sebagai:
Ṿv`
adalah no-op yang efektif di sini, tetapi ada untuk memastikan semua karakter terwakili.sumber
Jelly , 14 byte
Program lengkap yang menerima string (Python diformat) ( karakter halaman kode Jelly ) yang mencetak output.
(sebagai tautan monadik ia menghasilkan daftar daftar karakter)
Cobalah online!
Bagaimana?
sumber
f
danḟ
bekerja pada karakter Unicode, karena itulah karakter yang sebenarnya dimiliki string. Misalnya”ĿO
mengembalikan319
jika diuji secara lokal disandikan dalam JELLY, sehingga ia melihatĿ
dan bukan C7.f
danḟ
bekerja pada Unicode juga, tetapi apakah itu masalah di sini? Saya melewati rangkaian terbatas karakter Unicode yang muncul pada halaman kode Jelly (yaitu, byte yang dikodekan menggunakan pengkodean itu, memenuhi "Input dalam pengkodean yang sama dengan kode"); memfilternya dengan benar (karena byte yang dimasukkan ini disandikan sebagai Unicode), dan kemudian mengeluarkannya dengan benar. Yang kemudian saya hitung adalah byte kode (memenuhi "Input diurutkan berdasarkan karakter, bukan oleh byte" dan "jawaban terpendek dalam byte untuk setiap bahasa yang dimenangkan").Arang , 37 byte
Cobalah online! Penjelasan:
Ada dua cara mengutip karakter di Charcoal;
´
mengutip sembarang karakter tunggal saat”y
...”
mengutip sembarang karakter kecuali”
dan juga dihitung sebagai string terpisah. Ternyata overhead karena harus berurusan dengan itu”
berarti tidak berakhir pegolf.Ulangi karakter-karakter tersebut secara bergantian, menghasilkan karakter apa saja yang cocok dari input. Ini semacam input.
Keluarkan karakter yang tidak cocok dalam input.
sumber
J , 14 byte
Fungsi awalan diam-diam anonim.
Cobalah online!
]
argumen...
i:
kejadian terakhir (bukan anggota mendapatkan indeks di luar akhir string pencarian) dari setiap karakter di:']/:''i'
karakter]/:'i
...
/:
gunakan itu untuk mengurutkan:]
argumensumber
Java 10,
129100 byte-29 byte dengan porting
+c
dari @EmbodimentOfIgnorance C # answer .Cobalah online.
Penjelasan:
CATATAN: Biasanya lebih murah untuk digunakan
s.sort((a,b)->Long.compare(a,b))
daripadas.sort(java.util.Comparator.comparing(c->c)
, tetapi dalam kasus ini akan lebih panjang 11 byte:Cobalah online.
sumber
05AB1E ,
312619 byte-7 byte dengan mengambil inspirasi dari pendekatan @ EmbodimentOfIgnorance dalam jawaban C # untuk menambahkan karakter saat ini sebelum pengindeksan.
Cobalah online atau coba dengan menambahkan garis-debug untuk melihat string yang diindeks ke dalam .
Penjelasan:
sumber
PowerShell , 68 byte
Cobalah online!
sumber
sort
alih-alihsort-object
bekerja juga. 2) variabel yang$b
didefinisikan di luar cakupan kode Anda. yangStandard loopholes
membutuhkan jawaban yang lengkap . Untuk Powershell artinya: siapa pun dapat memasukkan kode ke file sebagai skrip PowerShell dan menjalankannya di terminal. Kode Anda tidak berfungsi dari file skrip. Maaf.sort
alias tidak berfungsi di pwsh di Ubuntu 18.04 2) ya, ini salah saya, tapi saya memperbaiki sendiri, dan sebagai hasilnya, kodenya menjadi lebih lama, tentu saja :)code became longer
- ini tantangannya :)$p
ditambahkan ke akhir string dengan kode sumber dan mendapatkan indeks yang sama dengan$src.Length
, tetapi karena "urutannya tidak masalah dan tidak boleh konsisten," itu tidak masalah. Dalam jawaban ini , seluruh string input ditambahkan ke akhir string dengan kode sumber.Python 2 , 62 byte
Konsep yang sama dengan jawaban C # saya.
Cobalah online!
sumber
\\\'
seharusnya\'\\
. Pendekatan yang bagus! Disimpan 23 byte dalam jawaban Java saya.Japt , 18 byte
Cobalah
sumber
Jelly , 26 byte (UTF-8 *)
Cobalah online!
Mengambil input sebagai string berformat Python dalam argumen baris perintah 1.
Karakter unik :
* Catatan: Saya menemukan bahwa ini tidak berfungsi ketika dikodekan dalam JELLY, karena ia mengurutkan karakter UTF-8 alih-alih bytenya sendiri.
sumber