Tantangan:
Diberikan string s
pada karakter a
- z
, A
- Z
, 0
- 9
, tambahkan panjangnya s
sendiri, dengan menghitung karakter tambahan dalam panjangnya sebagai bagian dari panjang total s
.
Memasukkan:
Hanya seutas panjang acak (bisa kosong).
Keluaran:
String yang sama, tetapi dengan panjangnya ditambahkan sampai akhir. Karakter yang mewakili panjang juga harus dihitung sebagai bagian dari panjang. Dalam kasus di mana ada beberapa panjang yang valid untuk ditambahkan, pilih yang terkecil yang mungkin (lihat kasus uji untuk contoh).
Kasus uji:
INPUT -> OUTPUT // Comment
aaa -> aaa4
-> 1 // Empty string
aaaaaaaa -> aaaaaaaa9 // aaaaaaaa10 would also normally be valid, but violates using the smallest number rule mentioned above
aaaaaaaaa -> aaaaaaaaa11
a1 -> a13 // Input can contain numbers at the end of the string, you do not have to handle the fact that it looks like 13 rather than 3.
Longer test case(s):
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa101
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa102
Aturan:
Ini adalah kode-golf , jadi kode terpendek dalam byte menang. Celah standar dilarang. Kiriman dapat berupa seluruh program atau fungsi, dan Anda dapat mencetak hasilnya ke stdout atau mengembalikannya sebagai variabel dari suatu fungsi.
code-golf
string
code-golf
string
random
code-golf
array-manipulation
code-golf
ascii-art
kolmogorov-complexity
random
code-golf
array-manipulation
code-golf
stateful
code-golf
hello-world
code-golf
string
code-golf
interpreter
lisp
code-golf
restricted-source
quine
palindrome
code-golf
ascii-art
random
generation
challenge-writing
ascii-art
random
polyglot
maze
answer-chaining
string
cops-and-robbers
whitespace
code-golf
string
cops-and-robbers
whitespace
code-golf
number
sequence
code-golf
date
code-golf
ascii-art
decision-problem
code-golf
combinatorics
chemistry
code-golf
kolmogorov-complexity
source-layout
radiation-hardening
code-golf
ascii-art
path-finding
maze
code-golf
string
ascii-art
game
animation
code-golf
string
ascii-art
code-golf
ascii-art
kolmogorov-complexity
code-golf
restricted-source
new-years
Yodle
sumber
sumber
Jawaban:
Pyth - 7 byte
Cobalah online di sini .
sumber
JavaScript (ES6), 32 byte
Bagaimana itu bekerja
Dimulai dengan
N=0
, kami menguji karakter ke-N (berbasis-0) dari string yang dibuat dari rangkaian string input asli dan representasi desimal dariN
. Kami bertambahN
hingga karakter ini tidak ada lagi.Contoh:
Uji kasus
Tampilkan cuplikan kode
sumber
LaTeX, 108/171
\q[] //1
sumber
JavaScript (ES6), 37 byte
sumber
Run Code Snippet
saya bisa melihat pesan kesalahan. Saya tidak memiliki pengetahuan tentang Javascript - Saya baru saja mencobaVersion 48.0.2564.97
). Saya akan coba ini dengan IE juga. Tidak dapat memperbarui chrome - masalah keamanan kantorC,
676561 byteWandbox
sumber
Lua 5.2, 32 Bytes
Di mana variabel a adalah string input.
sumber
Pyke, 8 byte ( versi lama )
Penjelasan:
Coba di sini! (Versi baru, 9 byte)
sumber
Python 2,
544846 byteSolusi sederhana. Rekursi menjadi lebih pendek.
Cobalah online
sumber
(s+`n`)[n:]
untukn<len(s+`n`)
.Haskell, 46 byte
Contoh penggunaan:
f "aaaaaaaa"
->"aaaaaaaa9"
.Cukup coba semua angka dimulai dengan 0 dan ambil yang pertama sesuai.
sumber
Mathematica, 57 byte
Fungsi tanpa nama mengambil array karakter sebagai input dan mengembalikan string. Menggunakan fakta bahwa jika
a
adalah panjang input, maka jumlah untuk menambahkan inputa
ditambah jumlah digit dalam (a
+ panjanga
), bukan hanyaa
ditambah jumlah digita
. Sayangnya itu tidak akan memberikan jawaban yang benar untuk input string kosong tanpa~Max~1
case khusus.sumber
Brachylog , 13 byte
Cobalah online!
Penjelasan
Pada dasarnya deskripsi masalah. Ini akan mencoba setiap nilai
L
lebih besar dari panjang input sampai menemukan satu yang, ketika digabungkan ke input, adalah panjang dari gabungan tersebut.sumber
Brainfuck, 258 byte
Input harus diakhiri oleh linefeed (LF). Hanya berfungsi untuk input dengan panjang kurang dari 256 (termasuk LF).
Cobalah online!
Penjelasan
Catatan: Saya menggunakan kode dari jawaban SO ini untuk mengonversi panjang menjadi keluaran ascii; Saya harap ini dapat diterima di PPCG. Ini adalah pengiriman Codegolf pertama saya, dan program BF kedua saya. Umpan balik disambut.
sumber
Retina , 22 byte
Cobalah online!
Ah, kalau bukan karena digit muncul di input, ini hanya akan 11 byte:
sumber
Ruby,
625856 byteDiuji dalam
irb
.Mungkin ada cara yang lebih baik untuk melakukan ini, tetapi ini adalah hal pertama yang saya pikirkan. Bantuan apa pun dalam bermain golf akan dihargai.
sunting: Saya menyadari bahwa penggunaan tanda kurung saya berlebihan.
sumber
l
di satu tempat. Jika Anda sebaris itu, Anda akan menghemat 3 bytel=;
. Tetapi solusi Anda masih akan lebih lama dari milik saya;)Perl 6 ,
4635 byteCobalah
Diperluas:
sumber
05AB1E , 11 byte
Bruteforce cukup mudah:
Cobalah online!
sumber
Python, 39 byte
Bentuk lagi:
Iteratif dalam Python 2 (41 byte):
Dimulai dengan
x
sebagai string inputa
, terapkan transformasix -> a + str(len(x))
tiga kali. Saya masih tidak jelas mengapa tiga aplikasi diperlukan untuk selalu mencapai titik tetap.sumber
PHP, 42 byte
Jalankan dengan
-r
. Tes di FungsiPH Online .sumber
bash, 47 byte
Simpan ini sebagai skrip, dan berikan string input sebagai argumen.
Ini adalah implementasi brute force: coba setiap angka secara bergantian sampai Anda menemukan yang berfungsi.
sumber
> <> (Ikan) 35 byte
Mengambil input ke stack, periksa panjangnya terhadap nilai 9,99.999 ... dan jika panjangnya lebih besar dari tambah 1 ke panjang stack.
sumber
Haskell ,
6160 byteCobalah online!
Solusi rekursif. Pemakaian:
sumber
C #, 77 byte
sumber
return(n+(a+1+c))
sebagaia=n.Length
?-1
dariint c=(a+1).ToString().Length-1
dan+1
dari pengembalian?aa...a100
bukanaa...a101
untuk 99a
kasus uji.MATL , 11 byte
Cobalah online! Atau verifikasi semua kasus uji .
sumber
Ruby, 51 byte (program)
Ruby, 49 byte (fungsi)
Program (baris baru terakhir tidak diperlukan dan karenanya tidak disimpan):
Fungsi (baris baru terakhir dicetak):
sumber
Faktor, 55 byte
Ini jalan-jalan di taman! Saya memikirkan hal ini segera setelah saya membaca pertanyaan itu.
sumber
Clojure, 72 byte
sumber
R, 49 byte
Solusi yang sangat mudah.
sumber
Read 1 item Error in nchar(x + 1) : object 'x' not found
. Saya menemukan bahwa(t<-nchar(a))+...
itu berhasil.Wolfram, 56
Mengingat
l = StringLength[x]
itu ditambahkanl + IntegerLength[l + IntegerLength[l]]
kex
.sumber
Labyrinth ,
484541 byteCobalah online!
Disimpan 4 byte berterima kasih kepada @Martin Ender
sumber
ForceLang, 83 byte
sumber