Tulis sebuah program yang mengambil string input dengan panjang 2 atau lebih karakter dan menambahkan string ~BOO!~
(string itu memiliki ruang awal dan akhir) di tempat acak yang seragam dalam string yang tidak di kedua ujungnya.
Input sampel yang dilarang : 2
atau
(input kosong)
Output sampel yang dilarang : Hello ~BOO!~
atau ~BOO!~ Hello
untuk inputHello
Input sampel :Hello, World!
Keluaran sampel : Hel ~BOO!~ lo, World!
atauHello, Worl ~BOO!~ d!
Ini kode golf, kawan. Aturan standar berlaku. Kode terpendek dalam byte menang.
Selamat kepada Dennis karena memiliki program tersingkat dan seram! Selamat Halloween!
Jawaban:
Pyth,
1918 byteBerkat @Jakube untuk bermain golf 1 byte!
Cobalah online.
Bagaimana itu bekerja
sumber
GML, 91 byte
Cukup sederhana - dapatkan string, masukkan substring ke dalamnya, output string. Selesai
sumber
Python 3, 60 byte
catatan:
Modulo dari
hash()
akan terdistribusi secara merata sepanjang string. Jika Anda berpikir itu menekuk aturan, perhatikan bahwa karena pengacakan hash python, ini sebenarnya acak: eksekusi berulang dengan input yang sama akan memberikan hasil yang berbeda.sumber
CJam, 20 byte
Cobalah online
Penjelasan:
sumber
Pip, 19 byte
Mengambil input dari baris perintah. Jika input memiliki spasi atau karakter khusus lainnya, ia harus ditempatkan dalam tanda kutip.
Penjelasan:
sumber
Julia, 70 byte
Tidak Disatukan:
sumber
APL, 27 byte
APL tidak memiliki fungsi menyisipkan, jadi kami memutar string sebagai gantinya.
Contoh input pada TryAPL
sumber
Vitsy, 19 Bytes
Perhatikan itu
z
danZ
diedit hari ini, tetapi tidak untuk tantangan ini.sumber
Lua, 75 byte
sumber
Python 3, 79 byte
Cobalah online
Cukup jelas - baca string, pilih bilangan bulat acak antara 1 dan panjang string, dan cetak string dengan
' ~BOO!~ '
memasukkan.sumber
print
dicetak spasi-terpisah, Anda dapat memotong spasi denganprint(s[:n],'~BOO!~',s[n:])
.Perl, 35 byte
34 byte kode + 1 byte baris perintah
Pemakaian:
sumber
C #, 125 byte
Diperluas:
Solusi ini mengasumsikan bahwa string dilewatkan sebagai parameter baris perintah pertama. Ini tidak biasa untuk C # (stdin lebih normal), jadi saya juga menyertakan solusi yang menggunakan stdin normal:
C #, 139 byte
Diperluas:
sumber
static void Main(string[] x) {Console.Write(x[0].Insert (...) x[0].Length (...)
akan mempersingkat kode AndaMATLAB, 69 byte
Memasukkan string string tengah pada indeks yang diberikan dalam MATLAB adalah mahal dalam hal byte. Jika ada cara sederhana untuk melakukannya, saya bisa menghemat jumlah yang wajar dengan pindah ke fungsi anonim, tetapi saya tidak dapat menemukannya. Baiklah
Pada dasarnya ia mendapatkan angka acak antara 1 dan panjang string minus 1. Kemudian menampilkan semuanya hingga dan termasuk indeks itu, diikuti oleh
~Boo!~
, dan kemudian semuanya setelah indeks sampai akhir.Ini juga berfungsi dengan Oktaf , sehingga Anda dapat mencobanya online di sini .
sumber
Bash / GNU, 61 byte
Mengambil string input sebagai argumen
sumber
Ruby, 46 byte
sumber
JavaScript, 79
Ini untuk konsol browser; bersenang-senang hanya muncul di.
sumber
Java 8,
158154 byteCoba di sini.
EDIT: Hanya sekarang membaca program alih-alih fungsi / program default dalam deskripsi tantangan .. Jadi tambahkan bordercode dengan antarmuka dan metode utama.
Jika suatu fungsi diizinkan, itu akan menjadi (
9995 byte )Coba di sini.
Penjelasan:
sumber
Chaîne , 23 byte
sumber
TeaScript, 30 byte
Sangat lurus ke depan.
sumber
CJam, 19 byte
sumber
mr
mengembalikan0
atau1
, karena keduanya-1
tidak0
valid untuk memisahkan string/
.BOO
di akhir string, Anda juga perlu(
sebelumnyamr
. Tapi itu identik dengan jawaban ini: codegolf.stackexchange.com/a/62355/8478q
danl
sinonim).