Kesadaran Posisi

10

Kesadaran Posisi

Tugas Anda adalah untuk menghasilkan program yang, untuk setiap permutasi karakternya (yang mencakup program asli), menampilkan posisi setiap karakter relatif terhadap program asli.

Jika program Anda

Derp

Anda harus mengeluarkan

[0, 1, 2, 3]

(atau yang setara). Hal ini karena Ddalam 0posisi th, eadalah di 1st, r 2nd, dan pyang 3rd.

Mari kita ambil program lain yang merupakan program asli, tetapi dengan karakter yang diijinkan:

epDr

Anda harus mengeluarkan

[1, 3, 0, 2]

karena eberada di 1posisi st dari program asli, pada di 3posisi rd, ke D- 0th, dan ke r- 2n.

Jika program asli memiliki dua karakter berulang:

abcda -> [0, 1, 2, 3, 4]

Maka untuk permutasi, the 0dan 4di dalam array harus dalam urutan menaik:

baadc -> [1, 0, 4, 3, 2] (0 first, then 4)

Aturan:

  • Program Anda harus mengandung setidaknya dua karakter unik.
  • Paling banyak floor(n/2)karakter harus sama.

     aabb (acceptable)
     aaaabc (not acceptable, only floor(6/2) = 3 a's allowed)
    
  • Output program Anda bisa berupa array (atau yang serupa) yang berisi posisi semua karakter secara berurutan, atau string dengan pembatas apa pun, jadi ini semua benar:

    [0, 1, 2, 3]
    0,1,2,3
    0 1 2 3
    
clismique
sumber
7
Saya tidak percaya tantangan ini memungkinkan solusi non-sepele karena hampir semua jawaban dalam bahasa apa pun>> ~ 5 tidak akan menjadi program yang valid untuk setiap permutasi, apalagi program yang menyelesaikan tantangan yang ada.
orlp
1
@ Qwerp-Derp Hampir tidak ada yang mengatakan apa pun di kotak pasir. Beberapa waktu yang lalu, saya telah mengirim pertanyaan setelah berada di kotak pasir selama sekitar satu bulan (atau lebih). Dan hanya ketika saya mempostingnya, ketika orang menunjukkan kesalahan dan downvotes turun hujan. Menurut pendapat jujur ​​saya, kotak pasir tidak berguna.
Ismael Miguel
1
Untuk sekali ini, saya merasa seperti dalam tantangan ini, jawaban yang lebih panjang akan lebih mengesankan daripada yang lebih pendek.
Wojowu
1
@ Woojowu saya bisa membuatnya menjadi bowling kode , jika itu mungkin - program terlama menang.
clismique
1
Apakah program 12dalam R valid? Itu hanya akan mencetak 12dan jika diijinkan; 21.
Billywob

Jawaban:

21

Sebenarnya , 2 byte

10

Cobalah online!

Ini mencetak

0
1

sedangkan (hanya) permutasi lainnya

01

cetakan

1
0

Bagaimana itu bekerja

Dalam Sebenarnya, angka berurutan diuraikan secara terpisah, jadi 10tekan 1 pada tumpukan, lalu 0 di atasnya.

Ketika program selesai, tumpukan dicetak dari atas ke bawah, sehingga ia mencetak 0 pertama, kemudian linefeed, kemudian 1 .

Program derrang 01melakukan hal yang sama, dalam urutan yang berlawanan.

Dennis
sumber
1
Bahasa lain tempat ini bekerja; Serius, 05ab1e, ///, 2sable.
Teal pelican
Spesifikasi mengatakan angka-angka harus dipisahkan. Itu bekerja di Serius, tetapi Sebenarnya sebenarnya hanya Serius 2.0.
Dennis
7

Jelly , 2 byte

;J

Cobalah online!

Output: [0, 1]

J;Output permutasi lainnya :[1, 0]

Bagaimana itu bekerja:

;J
;          Concats 0 with...
 J         [1...len(z)], here just [1]

J;
J          [1...len(z)], here just [1]
 ;         ...Concatted with 0
susu
sumber