Tujuannya di sini adalah membalikkan string, dengan satu putaran:
Simpan huruf besar di tempat yang sama.
Contoh Input 1: Hello, Midnightas
Contoh Output 1:SathginDim ,olleh
Contoh Input 2: .Q
Keluaran Exmaple 2:q.
Aturan :
- Output ke STDOUT, masukan dari STDIN
- Pemenang akan dipilih 13 Juli pada GMT + 3 12:00 (Satu minggu)
- Input hanya dapat terdiri dari simbol ASCII, membuatnya lebih mudah untuk program yang tidak menggunakan pengkodean apa pun yang berisi karakter non-ASCII.
- Tanda baca apa pun yang berakhir pada posisi di mana ada huruf besar harus diabaikan.
Jawaban:
TCC - 4 byte
Cobalah online!
Penjelasan:
sumber
tcc.lua
sebelum tantangan diposting? Mengingat bahwa Anda baru saja menambahkan perintah untuk menyelesaikan tiga tantangan lain, saya menganggap itu tidak. Jika jawaban Anda memerlukan versi bahasa yang mengunggah tantangan, Anda harus menandainya sebagai tidak bersaing di header. Saya akan menghapus downvote saya ketika Anda menambahkan label atau memberikan bukti bahwa kode Anda berfungsi di versi sebelumnya.Python, 71 byte
Cobalah online
-3 byte dari Ruud, ditambah inspirasi untuk 2 lebih.
-4 byte lagi dari FryAmTheEggman
sumber
lambda s:''.join([z.lower(),z.upper()][c.isupper()]for c,z in zip(s,s[::-1]))
lebih pendek tiga byte(z*2).title()[c.isupper()-1]
harus bekerja.~c.isupper()
bukanc.isupper()-1
Python 2, 73 byte
Karena aturan menentukan inputnya adalah ascii:
Semua kredit jatuh ke @Mego, tapi saya tidak punya reputasi untuk hanya mengomentari jawabannya.
sumber
Perl, 31 + 2 (
-lp
) = 33 byteSolusi ini dari @Ton Hospel (13 byte lebih pendek dari milik saya).
Tetapi Anda harus
l
danp
aktif. Untuk menjalankannya:sumber
-a
autosplit, saya merasa bisa menggunakan ini berkali-kali di masa lalu! Saya harus ingat itu! Saya pikir Anda dapat menyimpan byte lain menggunakanmap...,...
daripada yangmap{...}...
Anda miliki$F
di awal! :)perl -lpe 's%.%(lc$>$&?u:l)."c chop"%eeg
-a
ini tersirat oleh-F
-a
(dan-n
) tersirat oleh-F
, saya membacanya beberapa waktu lalu di perlrun, mencobanya, tetapi tidak berhasil; tapi saya mencobanya lagi sekarang dan itu berfungsi dengan baik jadi saya kira saya melakukan sesuatu yang salah saat itu. Terima kasih.Pyth,
1311109 byteTerima kasih kepada @FryAmTheEggman untuk mengingatkan saya tentang
V
dan @LeakyNun untuk byte lain.Cobalah online! sekarang di ponsel, memperbarui tautan sedikit
sumber
srV_Qm!rId0
adalah 11, tapi saya pikir mungkin untuk memperpendek peta itu ...d
dan Anda menyimpan byte.srV_Qm!/G
harus menyimpan bytePython, 66 byte
Berulang melalui indeks
i
, mengambil karakters[~i]
dari belakang dan kasings[i]
dari depan. Menjadi modal diperiksa sebagai berbohong dalam kisaran yang berdekatan@ABC...XYZ[
. Penghargaan untuk FryAmTheEggman dari(_*2).title()
triknya.sumber
Retina ,
756765 byteHitungan byte mengasumsikan penyandian ISO 8859-1.
Cobalah online! (Baris pertama memungkinkan suite uji dengan beberapa test case yang dipisahkan linefeed.)
sumber
JavaScript (ES6),
9583 byteSunting: Menyimpan 12 byte besar berkat @ edc65.
sumber
r=
tidak perlu.)Pyke,
11109 byteCoba di sini!
sumber
05AB1E ,
19161513 byteTerima kasih kepada Emigna karena menyimpan 3 byte!
Mungkin akan dikalahkan oleh Jelly ... Kode:
Menggunakan pengkodean CP-1252 . Cobalah online! .
sumber
S.l_v¹lRNèyiu}?
lebih pendek 1 byteÂuvy¹Nè.lilë}?
adalah 14. Hanya senang saya bisa membantu Anda sekali :)Ruvy¹Nè.lil}?
sebenarnya. Saya tidak menggunakan bifurkasi dan lupa untuk menghapus yang lain. Jadi 13.MATL , 13 byte
Cobalah online!
sumber
J , 30 byte
Tidak mendukung non-ASCII
sumber
Brachylog , 28 byte
Penjelasan
Predikat Utama:
Predikat 1:
sumber
TSQL, 175 byte
Golf:
Tidak disatukan
Biola
sumber
Sebenarnya, 25 byte
Cobalah online!
Penjelasan:
sumber
Haskell,
83807571 byteCara paling mudah yang bisa saya pikirkan.
sumber
(#)
,k
dapat ditulis ulang dengan gaya point-freek=reverse>>=zipWith(#)
b
sepertif a|isUpper a=toUpper|1>0=toLower
, meskipun konflik ini dengan peningkatan Flonk ini.f
xnor dan menulis ulang Flonkk
kezipWith f<*>reverse
.s
?k=
.PowerShell,
154,152,99, 86 byteTerima kasih @TimmyD karena telah menyelamatkan saya 47 byte kekalahan (saya juga menyimpan 6 tambahan)
Terima kasih @TessellatingHeckler karena telah menyimpan 13 byte tambahan.
Terbaru:
Asli:
Pemformatan normal:
Terbaru (terlihat sebagai dua baris menurut saya):
Penjelasan:
Asli:
Poster pertama kali di sini, termotivasi karena saya jarang melihat PowerShell,
tetapi padaAda saran yang dihargai.154152 byte yang satu ini ... Saya bisa melihat mengapa!Saya telah belajar bahwa saya harus benar-benar mengubah cara berpikir saya menjadi golf dalam kode dan kesenangannya!
sumber
.tostring()
tanda kutip dengan, dan dengan menggunakan manipulasi integer ASCII daripada regex. Coba yang berikut ini, untuk 105 byte -param($a)-join($a[$a.length..0]|%{if(($x=$a[$i++])-le90-and$x-ge65){"$_".ToUpper()}else{"$_".ToLower()}})
.param($a)-join($a[$a.length..0]|%{if(65..90-contains$a[$i++]){"$_".ToUpper()}else{"$_".ToLower()}})
X-inY
lebih pendek dariY-containsX
, dan Anda dapat mengubah Andaif
untuk Operator palsu terner untuk mendapatkan 86 byte -param($a)-join($a[$a.length..0]|%{("$_".ToLower(),"$_".ToUpper())[$a[$i++]-in65..90]})
Dyalog APL , 12 byte
819⌶
adalah fungsi lipat casef←
karena namanya panjang, kami menugaskannya ke f⊢≠f
Boolean di mana teks berbeda dari teks berhuruf rendahf¨⍨
gunakan itu (1 berarti huruf besar, 0 berarti huruf kecil) untuk melipat setiap huruf ...⌽
... dari teks yang terbalikMenangani non-ASCII sesuai dengan aturan Konsorsium Unicode.
sumber
CJam, 22 byte
Uji di sini.
sumber
Racket, 146 byte
Racket buruk untuk semua hal "golf" ini.
Mengangkat bahu Seperti biasa, bantuan apa pun untuk mempersingkat ini akan sangat dihargai.
sumber
Jolf, 21 byte
Coba di sini!
Penjelasan
sumber
(d)is function
... Pengejaan ejaan demi golf!Perl 6 , 29 byte
sumber
C #,
8685 byteAC # lambda di mana input dan output adalah string. Anda dapat mencobanya di .NetFiddle .
Aku berjuang untuk memahami mengapa aku tidak bisa mencapai untuk mengkonversichar.ToLower(c)
kec+32
. Saya berharap memperbaikinya!12 byte disimpan berkat @PeterTaylor (
c|32
untuk menambahkan 32 ke nilai asciic
danc&~32
untuk mengurangi 32). Hasilnya akan menjadi 72 byte (tetapi bisa gagal pada char non alpha).sumber
c|32
bukanc+32
, tetapi tidak akan bekerja dengan karakter non-alpha.PHP, 128 byte
Saya mungkin mencoba untuk mengoptimalkan ini lebih jauh tetapi saya hanya akan membiarkannya seperti sekarang.
sumber
Oktaf,
5150 byte@(s)merge(isupper(s),b=flip(toupper(s)),tolower(b))
sumber
VIM, 46 byte
Ini akan menjadi tiga byte
g~G
jika kita tidak perlu membaca dari stdin atau menulis ke stdout, tapi oh well ...Untuk menguji ini, jalankan
Ini adalah pengiriman pertama saya di sini, tidak yakin apakah pengiriman semacam ini dapat diterima.
sumber
:se ri<cr>C<C-r>"
tetapi kemudian Anda harus mencari cara bagaimana menggunakan huruf besar untuk huruf yang tepat.Javascript (menggunakan perpustakaan eksternal) (224 byte)
Penafian: Menggunakan perpustakaan yang saya tulis untuk membawa CQ's LINQ ke Javascript
sumber
Sed, 113 + 1 = 114 byte
Mengapa? Karena menyenangkan menggunakan yang salah alat yang untuk melakukan sesuatu: P
Penggunaan: Jalankan
sed -rf file
, masukkan teks dan tekan Ctrl+D (kirim EOF).Golf:
Tidak Terkumpul:
sumber
Java 7,
221217180 byteBanyak byte yang disimpan berkat pendekatan @LeakuNun .
Kasus yang tidak disatukan & uji:
Coba di sini.
Keluaran:
sumber
char[]
.String a="";
dan diubaho+=
untuk0[i]=
menyimpan byte, tetapi Java tidak memiliki karakter.toUpperCase()
/.toLowerCase()
metode, dan mengkonversi dari char ke String, menggunakan metode atas / bawah, dan kemudian kembali ke char lagi akan memerlukan (banyak) lebih banyak byte. Tetapi jangan ragu untuk memotong ideone yang ditautkan dan menghasilkan sesuatu untuk membuatchar[]
pekerjaan dalam byte lebih sedikit.C
sumber