EDIT: Jika Anda menggunakan Lisp, saya telah memberikan beberapa panduan di bagian bawah dalam menghitung byte.
Tujuan: Membuat fungsi terpendek yang memisahkan string pada non-digit dan mengembalikan array yang terdiri dari hanya digit di setiap string, tanpa menggunakan ekspresi reguler apa pun. Nol terkemuka harus dimasukkan dalam setiap string.
Peringkat saat ini (dipisahkan dalam kategori):
- C / C ++ / C # / Java: 68 (C) ....
- GolfScript / APL / J: 13 (APL)
- Lainnya: 17 (Bash, penggunaan
tr
), 24 (Ruby)
Aturan:
(Saya minta maaf atas panjangnya)
- Format harus sebagai fungsi dengan argumen string tunggal. Hingga dua argumen tambahan dapat ditambahkan jika perlu untuk pengembalian array yang tepat (mis. Sh / csh / DOS Batch membutuhkan referensi variabel tambahan untuk dikembalikan, dll.).
- Deklarasi fungsi utama tidak masuk hitungan, dan juga tidak mengimpor perpustakaan standar lainnya. `# include`,` import`, dan `using` tidak dihitung. Yang lainnya tidak. Ini termasuk fungsi `# define` dan pembantu. Maaf bila membingungkan. Lihat ini sebagai panduan bermanfaat tentang apa yang tidak / tidak dihitung (ditulis dalam sintaks C-style)
// tidak diperhitungkan total, dapat dihilangkan kecuali // tidak jelas, seperti setengah dari perpustakaan standar Java. #termasuk <stdio.h> impor some.builtin.Class // tidak masuk hitungan, lihat di atas #define printf p // menghitung total / * Arahan preprocessor lain, dll menghitung. * / int i = 0; // diperhitungkan someFunction (); // diperhitungkan char [] [] myMainSplitFunction (char [] [] array) {// tidak masuk hitungan // Semua yang ada di sini penting return returnArray; // Bahkan ini penting. } // tidak masuk hitungan / * Segala sesuatu di sini penting, termasuk deklarasi * / char [] [] someHelperFunction (char [] string) { // barang } // bahkan ini penting
- Output harus berupa array string atau sejenisnya (Daftar array di Java dan yang serupa dapat diterima). Contoh output yang diterima:
String[]
,char[][]
,Array
,List
, danArray
(objek). - Array harus berisi hanya berisi string-panjang primitif variabel atau objek string. Tidak boleh ada string kosong di kembalinya, dengan pengecualian di bawah ini. Catatan: string berisi string pertandingan yang berurutan, seperti contoh input dan output di bawah ini.
- Jika tidak ada kecocokan, maka badan fungsi harus kembali
null
, array / daftar kosong, atau array / daftar yang berisi string kosong. - Tidak ada perpustakaan eksternal yang diizinkan.
- Akhir baris DOS dihitung sebagai satu byte, bukan dua (sudah dibahas dalam meta, tetapi perlu ditekankan)
- Dan aturan terbesar di sini: tidak ada ekspresi reguler yang diizinkan.
Ini adalah pertanyaan kode-golf , sehingga ukuran terkecil menang. Semoga berhasil!
Dan berikut adalah beberapa contoh input dan output (dengan lolos C-style):
Input: "abc123def456" Output: ["123", "456"] Input: "aitew034snk582: 3c" Output: ["034", "582", "3"] Input: "as5493tax54 \\ 430-52@g9.fc" Output: ["5493", "54", "430", "52", "9"] Input: "sasprs] tore \" re \\ forz " Output: null, [], [""], atau serupa
Harap cantumkan berapa byte yang digunakan oleh jawaban Anda, dan seperti biasa, bermain golf bahagia!
Pedoman untuk Lisp
Inilah yang dihitung dan tidak dihitung dalam dialek Lisp:
;;; Pilihan 1 (mencabut ekstrak-string (ab); Tidak masuk hitungan (barang) ;; Semua yang ada di sini penting ); Tidak masuk hitungan ;;; pilihan 2 (mencabut ekstrak-string (string & aux (mulai 0) (akhir 0)); Tidak dihitung (barang) ;; Semua yang ada di sini penting ); Tidak masuk hitungan.Semua lambda lainnya sepenuhnya dihitung menuju jumlah byte.