Rotonim 2
"Rotonim" adalah kata yang ROT13 menjadi kata lain (dalam bahasa yang sama).
Untuk tantangan ini, kami akan menggunakan definisi alternatif: "Rotonim" adalah kata yang digulirkan / dirotasi menjadi kata lain (dalam bahasa yang sama).
Sebagai contoh:
'stable' < 'tables' < 'ablest'
'abort' > 'tabor'
'tada' >> 'data'
Tantangan
Tulis program atau fungsi yang menerima kamus / daftar kata dan cetak atau kembalikan daftar lengkap dari kata-kata kebalikan.
- Urutan tidak masalah.
- Perbandingan harus peka huruf besar kecil, sehingga Anda dapat mengasumsikan input akan diteruskan sebagai kamus kecil saja.
- Hasil harus dinyatakan sebagai kata tunggal (bukan pasangan) dan tidak mengandung duplikat, sehingga Anda dapat menganggap input tidak memiliki duplikat.
- Ini adalah kode-golf .
Contoh
Diberikan
ablest
abort
green
irk
stable
tables
tabor
tata
terra
vex
you
Kembali
ablest
abort
stable
tables
tabor
Tes Nyata
Diberikan
a aa aal aalii aam aani aardvark aardwolf aaron aaronic aaronical aaronite aaronitic aaru ab aba ababdeh ababua abac abaca abacate abacay abacinate abacination abaciscus abacist aback abactinal abactinally abaction abactor abaculus abacus abadite abaff abaft abaisance abaiser abaissed abalienate abalienation abalone abama abampere abandon abandonable abandoned abandonedly abandonee abandoner abandonment abanic abantes abaptiston abarambo abaris abarthrosis abarticular abarticulation abas abase abased abasedly abasedness abasement abaser abasgi abash abashed abashedly abashedness abashless abashlessly abashment abasia abasic abask abassin abastardize abatable abate abatement abater abatis abatised abaton abator abattoir abatua abature abave abaxial abaxile abaze abb abba abbacomes abbacy abbadide abbas abbasi abbassi abbasside abbatial abbatical abbess abbey abbeystede abbie abbot abbotcy abbotnullius abbotship abbreviate abbreviately abbreviation abbreviator abbreviatory abbreviature abby abcoulomb abdal abdat abderian abderite abdest abdicable abdicant abdicate abdication abdicative abdicator abdiel abditive abditory abdomen abdominal abdominales abdominalian abdominally abdominoanterior abdominocardiac abdominocentesis abdominocystic abdominogenital abdominohysterectomy abdominohysterotomy abdominoposterior abdominoscope abdominoscopy abdominothoracic abdominous abdominovaginal abdominovesical abduce abducens abducent abduct abduction abductor abe abeam abear abearance abecedarian abecedarium abecedary abed abeigh abel abele abelia abelian abelicea abelite abelmoschus abelmosk abelonian abeltree abencerrages abenteric abepithymia aberdeen aberdevine aberdonian aberia aberrance aberrancy aberrant aberrate aberration aberrational aberrator aberrometer aberroscope aberuncator abet abetment ablest abort abut ach ache acher achete achill achor acor acre acyl ad adad adat add addlings adet ala ama baa bafta balonea batea beta caba cha chilla cora crea da dad dada data each lacy orach rache saddling stable tables tabor tabu tade teache zoquean zoraptera zorgite zoril zorilla zorillinae zorillo zoroastrian zoroastrianism zoroastrism zorotypus zorrillo zorro zosma zoster zostera zosteraceae zosteriform zosteropinae zosterops zouave zounds zowie zoysia zubeneschamali zuccarino zucchetto zucchini zudda zugtierlast zugtierlaster zuisin zuleika zulhijjah zulinde zulkadah zulu zuludom zuluize zumatic zumbooruk zuni zunian zunyite zupanate zutugil zuurveldt zuza zwanziger zwieback zwinglian zwinglianism zwinglianist zwitter zwitterion zwitterionic zyga zygadenine zygadenus zygaena zygaenid zygaenidae zygal zygantra zygantrum zygapophyseal zygapophysis zygion zygite zygnema zygnemaceae zygnemales zygnemataceae zygnemataceous zygnematales zygobranch zygobranchia zygobranchiata zygobranchiate zygocactus zygodactyl zygodactylae zygodactyli zygodactylic zygodactylism zygodactylous zygodont zygolabialis zygoma zygomata zygomatic zygomaticoauricular zygomaticoauricularis zygomaticofacial zygomaticofrontal zygomaticomaxillary zygomaticoorbital zygomaticosphenoid zygomaticotemporal zygomaticum zygomaticus zygomaxillare zygomaxillary zygomorphic zygomorphism zygomorphous zygomycete zygomycetes zygomycetous zygon zygoneure zygophore zygophoric zygophyceae zygophyceous zygophyllaceae zygophyllaceous zygophyllum zygophyte zygopleural zygoptera zygopteraceae zygopteran zygopterid zygopterides zygopteris zygopteron zygopterous zygosaccharomyces zygose zygosis zygosperm zygosphenal zygosphene zygosphere zygosporange zygosporangium zygospore zygosporic zygosporophore zygostyle zygotactic zygotaxis zygote zygotene zygotic zygotoblast zygotoid zygotomere zygous zygozoospore zymase zyme zymic zymin zymite zymogen zymogene zymogenesis zymogenic zymogenous zymoid zymologic zymological zymologist zymology zymolyis zymolysis zymolytic zymome zymometer zymomin zymophore zymophoric zymophosphate zymophyte zymoplastic zymoscope zymosimeter zymosis zymosterol zymosthenic zymotechnic zymotechnical zymotechnics zymotechny zymotic zymotically zymotize zymotoxic zymurgy zyrenian zyrian zyryan zythem zythia zythum zyzomys zyzzogeton
Kembali
aal aam aba abac abaft abalone abate abet ablest abort abut ach ache acher achete achill achor acor acre acyl ad adad adat add addlings adet ala ama baa bafta balonea batea beta caba cha chilla cora crea da dad dada data each lacy orach rache saddling stable tables tabor tabu tade teache
abdominovaginal
, Anda punya beberapa kata aneh di sana.Jawaban:
Jelly , 8 byte
Cobalah online!
Versi alternatif, 7 byte
Dyadic
Ƭ
digunakan untuk melakukan sesuatu yang aneh, jadi ini tidak berhasil ketika tantangan diposting.Cobalah online!
Bagaimana itu bekerja
sumber
ṙ1$ÐĿfḊɗÐf
.APL (Dyalog) , 20 byte
Membutuhkan
⎕io←0
Cobalah online!
(1↓∘∪⍳∘≢⌽¨⊂)¨
mendapat rotasi unik (tidak termasuk string itu sendiri) dari setiap string dalam kamus≢
membutuhkan panjang vektor⍳∘≢
menciptakan rentang dari 0 hingga panjang⌽
memutar vektor beberapa kali, mis. 2⌽'abort '->' ortab '⍳∘≢⌽¨⊂
kemudian akan memberikan semua rotasi vektor∪
menghapus duplikat1↓
menghapus elemen pertama (string asli),/
meratakan semua rotasi menjadi satu daftar⊂∩¨
mengambil persimpangan kamus dengan rotasisumber
⊂∩¨
trik Anda (atau sebaliknya) untuk -1 lebih lanjutAPL (Dyalog Unicode) ,
2523221716 byte SBCSPinjam ide dari solusi ngn / k ngn . Dan kemudian -6 terima kasih padanya. Juga -1 dengan mengembalikan daftar terlampir seperti H.PWiz .
Fungsi awalan diam-diam anonim.
Cobalah online!
(
...)¨
terapkan fungsi diam-diam berikut untuk setiap kata:,⍨
menyatukan kata untuk dirinya sendiri≢,/
semua sub-string kata-panjang (yaitu semua rotasi)∪
elemen unik dari rotasi tersebut (untuk mencegah kata-kata sepertitata
tampil dua kali)1,.↓
gabungan dari drop-first (kata-kata asli) dari setiap daftar⊂∩¨
persimpangan isi itu dan seluruh daftar kata asliSolusi lama
-2 Terima kasih kepada ngn.
Lambda awalan anonim.
Cobalah online!
{
...}
berfungsi di mana⍵
daftar kata:(
...)¨
terapkan fungsi diam-diam berikut untuk setiap kata:,⍨
menyatukan kata untuk dirinya sendiri≢,/
semua sub-string kata-panjang (yaitu semua rotasi)∪
elemen unik dari rotasi tersebut (untuk mencegah kata-kata sepertitata
tampil dua kali)↑
mencampur daftar daftar menjadi satu matriks (bantalan dengan string semua ruang)⍵∊⍨
menunjukkan elemen matriks mana yang merupakan anggota dari daftar asli+/
jumlah baris (jumlah kemunculan dari masing-masing kata aslinya)2≤
menunjukkan yang memiliki duplikat (yaitu terjadi selain ketika diputar kembali ke aslinya)⍵/⍨
gunakan itu untuk menyaring daftar aslisumber
{∪⌽∘⍵¨⍳≢⍵}
->(∪≢,/,⍨)
; penggunaan Anda∊
pintar{⍵∩⊃,/1↓¨(∪≢,/,⍨)¨⍵}
⊢∩∘⊃1,.↓(∪≢,/,⍨)¨
Brachylog , 26 byte
Cobalah online!
sumber
Python 2 ,
736967 byteCobalah online!
Mengambil satu set kata (huruf kecil), dan mengembalikan daftar rotonim.
Diselamatkan
sumber
K (ngn / k) , 23 byte
Cobalah online!
{
}
adalah fungsi dengan argumenx
0 1_
memotong string pada indeks 0 dan 1, misalnya"abcd"
->(,"a";"bcd")
|
membalikkan dua irisan:("bcd";,"a")
,/
bergabung dengan mereka:"bcda"
(,/|0 1_)\
mengembalikan semua rotasi string(,/|0 1_)\'x
adalah rotasi dari setiap stringx
1_'
menjatuhkan "rotasi" pertama masing-masing, yaitu masing-masing rotasi identitas sepele,/
Ikutix^y
adalah daftarx
tanpa elemen daftary
x^x^y
adalah persimpangan darix
dany
sumber
05AB1E , 14 byte
Cobalah online!
Penjelasan
sumber
PynTree , 44 byte
Cobalah online!
Ini ternyata mengungkapkan kelemahan utama dalam cara PynTree membangun pemahaman daftar karena menggunakan fungsi untuk menetapkan variabel sehingga penugasan dapat berjalan dalam ekspresi, tetapi kemudian kondisi akhirnya tidak memiliki nilai variabel sampai setelah dievaluasi dan blok utama telah dievaluasi. Tampaknya ini mudah diperbaiki tetapi saya tidak menyadarinya lebih awal sehingga jawaban ini sangat panjang.
Sebenarnya bahkan jika saya memperbaikinya saya pikir itu masih sangat panjang.
sumber
Perl 6 , 65 byte
Cobalah
Diperluas:
sumber
JavaScript (Node.js),
10599 byteTidak Disatukan:
Cobalah online!
sumber
Retina 0.8.2 ,
7162 byteCobalah online! Penjelasan:
Ulangi untuk setiap kata.
Tambahkan rotasi kata berikutnya dengan trailing
!
.Tetapi jika itu kata aslinya, maka hapus lagi.
Sortir kata-katanya.
Temukan duplikatnya.
sumber
Python 2 ,
665570 byteCobalah online!
11 byte thx ke Dennis untuk menggunakan
x in y in z
pendekatan dirantai .Mengambil satu set kata-kata
d
; mengembalikan seperangkat Rotonim.sumber
C # (.NET Core) ,
10094 byteCobalah online!
sumber
Japt , 17 byte
Sangat lambat, tetapi berhasil. TIO time out, tetapi saya mengonfirmasi itu bekerja dengan secara manual menurunkan jumlah iterasi dalam sumber bahasa.
Cobalah online!
sumber
Javascript, 129 Karakter
Tidak disatukan
Cobalah online!
sumber
Java (JDK 10) , 144 byte
Cobalah online!
sumber
JavaScript (Node.js) , 66 byte
Cobalah online!
jawaban yang membosankan
sumber