Tulis program yang mengambil string dan output semua karakter dalam urutan abjad. Spasi dan simbol dapat diabaikan atau dihapus, tetapi huruf besar dan kecil harus tetap sama.
Input sampel:
Johnny walked the dog to the park.
Output sampel
aaddeeeghhhJklnnoooprtttwy
Aturan:
• Bahasa apapun
• Kode terpendek menang.
Spaces and symbols can be ignored or deleted
, apakah itu berarti harus diabaikan; atau apakah output seperti, .aaddeeeff
diizinkan?k
s dalam output?Jawaban:
MathGolf , 2 byte
Cobalah online!
Contoh output
Menghapus karakter non-abjad
Untuk menghapus semua karakter non-abjad, solusi ini berfungsi:
Ini sama dengan kode di atas, diikuti dengan pemfilteran di mana masing-masing karakter digandakan, dan kemudian membandingkan kapitalisasi sendiri. Misalnya, string
"a"
dikonversi menjadi"aa"
dan kemudian dikapitalisasi menjadi"Aa"
, yang tidak sama dengan"aa"
. Dengan cara yang sama, string"B"
dikonversi ke"BB"
dan dikapitalisasi menjadi"Bb"
, yang tidak sama dengan"BB"
. Namun,"."
dikonversi menjadi".."
dan tidak berubah saat dikapitalisasi, sehingga akan disaring.Penjelasan
Saya benar-benar membutuhkan lebih banyak penanganan string di MathGolf ... Saat ini bahkan tidak ada operator untuk mengkonversi ke huruf kecil / huruf besar. Satu-satunya hal yang bisa saya gunakan adalah operator huruf besar, yang bekerja seperti operator huruf besar untuk string panjang 1. Solusi ini juga mengurutkan karakter non-alfabet, tetapi mereka dapat diabaikan. Karakter alfabet mempertahankan kasingnya dan menampilkan urutan yang benar.
sumber
GolfScript, 24/6 karakter
Contoh:
Jika input dibatasi untuk dicetak ascii kode dapat disingkat tiga karakter menggunakan
{95&.64>\91<&},
filter.Dapat diuji di sini .
Versi yang dapat diabaikan bahkan lebih pendek (6 karakter):
dan menghasilkan output
sumber
{}$
{}$
akan setara dengan$
.Utilitas inti GNU - 25 karakter (29 menjatuhkan simbol)
Contoh (dari GNU bash 3):
Dari pertanyaan:
Saya memilih untuk meninggalkan mereka! Untuk hanya mempertahankan karakter alfabet, ganti
fold -1
dengangrep -o \\w
+4 karakter.Terima kasih kepada Firefly untuk merekomendasikan
grep -o
lebihsed
, dan Wumpus untukfold -1
. ;-)sumber
-f
(lipat)sort
untuk mengabaikan case.C, 121
Ini cukup lama dibandingkan dengan entri lain, tetapi tidak bergantung pada fungsi penyortiran bawaan atau ToLower:
Versi yang lebih mudah dibaca:
Ini adalah implementasi jenis penyisipan dengan perbandingan case-insensitive antara elemen (menggunakan
|32
operasi bitwise). Ini karena dalam ASCII penyandian huruf besar dan huruf kecil hanya berbeda dengan 2 5 bit.sumber
Ruby - 33 Chars
sumber
*""
alih-alih.join
.p
, tapi itu dipertanyakan, jadi gunakan sajaputs
. Juga,$<
merupakan jalan pintas untuk ARGF$><<
alih-alihputs
karena ruang pemisah dapat dihapus.PowerShell: 39
Hasil
C #: 100
Hasil
sumber
ToCharArray
;String
mengimplementasikanIEnumerable<char>
sal
, saya tidak berpikir Anda bisa menggunakannya. Tapi, Anda bisa menghilangkan penugasan variabel dengan"$([string[]][char[]](Read-Host)|sort)"
.APL 16
sumber
Perl6: 26 karakter
Mengurutkan output huruf besar terlebih dahulu, lalu huruf kecil, menghapus simbol / spasi
Jika spasi putih / simbol dalam output mungkin diabaikan juga, ini hanya 21 karakter.
Ini semacam case-insensitive, menjaga simbol (26 karakter)
sumber
Perl 34
Sekarang ambil input dari
STDIN
.Perl 18
Jika output termasuk huruf kapital terlebih dahulu dan simbol yang disertakan dapat diterima:
sumber
Haskell, 88
(38 tanpa impor dari lib standar)
sumber
k (
109)Baca dari stdin
Contoh
sumber
C #: 83
Pembaruan: 65
Dapat dijalankan di LinQPad
sumber
Python 3: 45
sumber
J, 12 karakter
Abaikan karakter non-alfa.
sumber
f=.
, atau Anda ingin saya menambahkan1!:1[1
?1!:1[1
danecho
tolongecho
?Javascript - 74
Sayangnya, karena cara JS mengurutkan karakter, kami tidak dapat menggunakan fungsi penyortiran standar:
Sebenarnya ini dapat disingkat menjadi:
sumber
F # (
6856)Saya belajar F # jadi saya yakin ini bisa lebih pendek:
Keluaran:
sumber
PHP, 50 byte
tidak menghapus huruf, mengambil input dari STDIN; jalankan bersama
-R
.sumber
R, 48 karakter
Contoh penggunaan:
sumber
q / k4 (3? 5? 8?)
jika cukup untuk memasukkan kode dan input langsung ke REPL, itu hanya
asc
:itu
`s#
adalah sedikit notasi q yang menunjukkan bahwa string dalam urutan diurutkan (dapat dicari biner, dll.). jika harus pergi, biayanya dua karakter, membuat lima:jika Anda menginginkannya disediakan di stdin, saatnya untuk beralih ke k4 (dan kami menyingkirkannya
`s#
secara gratis), dan ini adalah solusi delapan karakter:yang itu, btw, akan berfungsi sebagai file kode persis seperti itu (masih delapan karakter, karena q baik-baik saja dengan tidak memiliki baris akhir terakhir dalam file kode). biasanya akan ada masalah dengan spanduk selamat datang dan dengan REPL tetap terbuka, tetapi jika Anda lulus input sebagai herestring, semua itu hilang:
tidak benar-benar yakin dari mana baris baru tambahan dalam output berasal ...
sumber
Jelly, 3 byte
Solusi Jelly pertama saya di situs ini! Terima kasih kepada @LeakyNun dan @ErikTheOutgolfer karena mengajari saya cara menggunakan Jelly dan @Dennis untuk membuatnya! : D
Penjelasan
Atau,
ŒuÞ
lakukan hal yang sama persis kecuali mengkonversi ke huruf besar.sumber
Powrshell, 36 byte
Skrip uji:
Keluaran:
sumber
05AB1E , 3 byte
Cobalah online .
Penjelasan:
sumber
Java 10, 72 byte (sebagai fungsi lambda)
Cobalah online.
Tapi karena ini adalah tantangan lama yang menyatakan program lengkap:
Java 10, 126 byte (sebagai program lengkap)
Cobalah online.
Penjelasan:
sumber