Diberikan serangkaian karakter alfanumerik yang tidak disortir, mis
ABC321STPpJqZZr0
output "," - daftar rentang karakter yang dipisahkan, diurutkan berdasarkan nilai ASCII, mengabaikan case dan menghapus duplikat ( yaitu hanya mengeluarkan huruf besar dan karakter numerik), misalnya
0-3, A-C, J, P-T, Z
Aturan
- Panjang program Anda adalah skor dasar Anda, seperti biasa.
- Anda harus menginisialisasi (hardcode) contoh di atas dalam program Anda, tetapi Anda dapat mendiskon panjang contoh itu dari panjang program Anda, misalnya untuk
char* s="ABC321STPpJqZZr0";
Anda dapat mendiskon 16 karakter, 11 karakter lainnya dihitung terhadap panjang program Anda.
Bonus (+50 hadiah)
- Karena ini adalah masalah nyata yang dihadapi oleh rekan kerja saya hari ini, perlu ditulis dalam Tcl 8.0.5 (versi kuno, tidak memiliki banyak built-in Tcl terbaru), saya akan memberikan 50 poin kepada siapa pun yang menulis Tcl 8.0 terpendek .5 solusi, jika setidaknya ada 2 kiriman yang valid di Tcl 8.0.5.
", "
untuk memasukkan spasi, tetapi kami dapat meninggalkan suntingan Anda dan membiarkan komentar ini berfungsi sebagai indikasi itu.Jawaban:
Ruby, 87-16 = 71
EDIT: Harus menambahkan beberapa karakter sehingga rentang dua karakter ditampilkan dengan benar. Juga menggunakan
?[
alih-alih?Z
memperbaiki bug dengan rentang yang berakhiran Z.Anda dapat melihat Ideone dijalankan di sini .
sumber
gsub(/[]/i)
lebih pendek daritr(''.upcase)
2 karakter. Selain itu,scan(/.+/)
->split
menghemat 5, dan$><<
bukannya yangputs
lain.Julia, 131
Tidak didukung oleh Ideone.com, dan mungkin akan hancur juga.
sumber
C #, 221 byte
sumber
C, 193
sumber
GolfScript
575452Coba di sini .
Kode pertama kali mengkapitalisasi segalanya:
Kemudian dapatkan karakter unik dan simpan dalam variabel:
Lalu, kita mendapatkan karakter yang pendahulunya langsung tidak ada dalam string (sehingga mereka adalah bagian awal dari rentang):
Kami juga mendapatkan ujung rentang dengan
x..{)}%&-
.Sekarang benar-benar membentuk rentang dengan menggabungkan daftar, menyortir, dan membelah menjadi 2 kelompok:
Sisanya hanya memformat, menggunakan
*
sebagai string bergabung.sumber
.95>{32-}{}if
->.95>32*-
menyimpan 5 karakter.Q, 94
sumber
Python 2.x, 304 - 16 = 288
Ini pasti bisa bermain golf lebih lanjut, semua komentar diterima!
sumber
Rebol (218 - 16 = 202)
Versi non-minified:
sumber
q [116 karakter]
Pemakaian
KeluaranAda cakupan menyimpan karakter, saya akan mencoba beberapa metode lain dan mempostingnya.
sumber
Tcl 8.0.5, 344 (360 byte)
Tcl 8.0.5, 340 (356 bytes)
Bermain-main dengan
rename
perintah menghasilkan beberapa trik menyenangkan! Saya sudah mendokumentasikannya di utas lain .Tcl 8.0.5, 332 (348 byte) [Tidak stabil — tergantung pada $ PATH]
Kredit ke @JohannesKuhn untuk trik interaktif .
sumber
while
dengantime
konstruk. codegolf.stackexchange.com/a/126236/29325