Perl 5 , 52 + 1 ( -n) = 53 byte

1

Bahasa Wolfram (Mathematica) , 55 byte

""<>#&/@Union@Tuples[{#,ToUpperCase@#}]&@*Characters

Cobalah online!

adalah operator transpos (dan ditampilkan sebagai T superskrip dalam Mathematica).

Martin Ender
sumber

Jawaban:

1

Tcl, 165 181 byte

set n -1
while {[incr n]<1<<[llength [set s [split $argv {}]]]} {puts [join [lmap c $s b [split [format %0[llength $s]b $n] {}] {string to[expr $b?{u}:{l}] $c}] ""]}

Perbaikan berkat sergiol . Jawaban sebelumnya:

set s [split $argv {}]
set n -1
while {[incr n]<1<<[llength $s]} {set r ""
foreach c $s b [split [format %0[llength $s]b $n] {}] {set r $r[string [expr $b?{tou}:{tol}] $c]}
puts $r}

Menggunakan nomor biner untuk memilih antara huruf besar / kecil saat membuat teks output.

Dúthomhas
sumber
165
sergiol
@sergiol Itu cukup berbeda dari saya sehingga Anda harus mempostingnya sebagai jawaban Anda sendiri dan mendapatkan pujian yang bagus untuk menjadi luar biasa.
Dúthomhas
Tidak. Saya hanya mengubah bagian kecil dari jawaban Anda, saya tidak mengubah pendekatan atau algoritme penting, jadi, menurut saya, saya pikir saya tidak pantas membuat jawaban baru dari Anda! Dan saya ragu saya bisa mendapatkan algoritma yang pendek seperti aslinya untuk tujuan yang sama!
sergiol
1

Attache , 39 byte

&Cross[Sum@V]##Unique@V#SwapCase=>Chars

Cobalah online!

Mirip dengan jawaban perl. (Saya kehilangan alternatif yang lebih menarik, saya harus mempostingnya dalam beberapa jam ke depan.)

Conor O'Brien
sumber
0

JavaScript (ES6), 103

Menangani karakter non-ASCII

(a,r=new Set)=>a?f(a.slice(1)).map(v=>(C=o=>r.add(a[0][`to${o}erCase`]()+v),C`Upp`,C`Low`))&&[...r]:[a]

Uji

f=(a,r=new Set)=>a?f(a.slice(1)).map(v=>(C=o=>r.add(a[0][`to${o}erCase`]()+v),C`Upp`,C`Low`))&&[...r]:[a]

function test() { O.textContent = f(I.value).join('\n') }

test()
<input id=I oninput='test()' value='ž1a'>
<pre id=O></pre>

edc65
sumber