Meskipun memiliki 17 pertanyaan yang ditandai anagram , kami masih belum memiliki pertanyaan ini, jadi ini dia.
Tugas Anda
Anda harus menulis sebuah program atau fungsi yang, saat menerima sebuah string, mencetak semua anagram yang mungkin darinya. Untuk keperluan pertanyaan ini, anagram adalah string yang berisi karakter yang sama dengan string asli, tetapi bukan salinan persis dari string asli. Anagram tidak harus atau mengandung kata-kata aktual.
Memasukkan
Anda dapat menerima string, yang panjangnya> 0, dengan metode input standar apa pun. Ini mungkin mengandung karakter ASCII.
Keluaran
Anda dapat menampilkan semua anagram yang mungkin dari string yang dimasukkan dengan cara standar apa pun. Anda tidak boleh mengeluarkan string yang sama dua kali, atau menghasilkan string yang sama dengan input.
Peraturan Lainnya
Celah Standar tidak diizinkan
Mencetak gol
Ini adalah kode-golf , paling tidak byte menang.
sumber
Jawaban:
05AB1E , 3 byte
Fungsi yang meninggalkan tumpukan dengan daftar anagram di atas (dan sebagai satu-satunya item). Saat program lengkap mencetak representasi dari daftar itu.
Cobalah online!
Bagaimana?
sumber
Ruby , 45 byte
Cobalah online!
Meskipun memiliki built-in, kata "permutasi" sangat panjang :(
sumber
|[]
tampaknya tidak perlu?|[]
lebih pendek dari.uniq
.MATL , 7 byte
Cobalah online!
Penjelasan
sumber
pyth ,
84Tes online .
sumber
Japt , 6 byte
Cobalah online!
Penjelasan
sumber
Haskell,
4840 byteCobalah online!
Disimpan 8 byte berkat
tail
tip Leo .sumber
tail
sebagai gantidelete x
, karena string asli akan selalu menjadi yang pertama dalam daftar permutasi. Ini akan memungkinkan Anda beralih ke solusi titik bebas, dan kemudian ke fungsi yang tidak disebutkan namanya, banyak byte yang akan disimpan!CJam , 8 byte
Cobalah online!
Penjelasan
sumber
Mathematica, 47 byte
sumber
StringJoin/@Rest@Permutations@Characters@#&
adalah 43 byte.Jelly , 4 byte
Tautan monadik yang mengambil daftar karakter dan mengembalikan daftar daftar karakter - semua anagram berbeda yang tidak sama dengan input.
Cobalah online! (footer membentuk program yang menggabungkan daftar dengan baris baru dan cetakan untuk menghindari representasi yang hancur).
Bagaimana?
sumber
Y
jika fungsi diizinkan ... Saya melihat Anda baru saja membalik edit saya ke pertanyaan: /Python 3,
857663 byteSebagai fungsi, dan mengembalikan string sebagai daftar karakter (terima kasih kepada @ pizzapants184 karena memberi tahu saya bahwa itu diperbolehkan):
Sebagai fungsi:
85 byte sebagai program lengkap:
Bisa dikurangi sedikit jika mengeluarkan string sebagai ('a', 'b', 'c') diperbolehkan (Saya tidak yakin itu).
sumber
Java 8,
245239237 byte-6 byte terima kasih kepada @ OlivierGrégoire .
Java verbose yang umum .. Saya melihat banyak <10 byte jawaban, dan saya di sini dengan 200+ byte .. XD
Penjelasan:
Coba di sini.
sumber
l.forEach(System.out::println);
sebagai ganti lingkaran pencetakan Anda. Juga, saya tidak sukaSet
didefinisikan di tingkat kelas tanpa kelas terlampir, sebuah lambda didefinisikan tidak ada yang tahu di mana dan metode. Ini terlalu banyak untukku. Saya dapat memahami impor dipisahkan dari yang lain, tetapi tidak ada yang mandiri di sana, lebih mirip kumpulan potongan daripada yang lainnya. Maaf, tetapi untuk pertama kalinya di PCG, saya memberi -1 :(forEach
. Sedangkan untuk tingkat kelasSet
, apa alternatifnya? Posting seluruh kelas termasuk metode utama? Posting seluruh kelas tidak termasuk metode utama, tetapi termasuk kelas itu sendiri, antarmuka dan nama fungsi?public static void main
, katakan saja "metode entri adalah ...". Masalahnya adalah bahwa jawaban Anda seperti saat ini melanggar semua aturan "mandiri". Saya tidak menentang mengikat aturan, tetapi melanggar? Ya, saya keberatan :(Perl 6 ,
3938 byteCobalah
Cobalah
Diperluas
sumber
C ++, 142 byte
ungolfed
sumber
K (oK) , 13 byte
Larutan:
Cobalah online!
Penjelasan:
Evaluasi dilakukan dari kanan ke kiri.
sumber
JavaScript (ES6), 101 byte
Diadopsi dari jawaban masa lalu saya .
Tampilkan cuplikan kode
sumber
Perl 5 , 89 + 2 (
-F
) = 91 byteCobalah online!
sumber