Anda akan diberikan dua buah input: string dalam format yang dikodekan run-length mendefinisikan trek yang sedang berjalan, dan huruf kapital yang mewakili jalur untuk memulai. Misalnya, string "3a4A6b5B" berkembang menjadi "aaaAAAAbbbbbbbbBBBBBB". Anda kemudian menggunakan string yang diperluas untuk membuat trek, seperti:
A) aaaAAAA
B) bbbbbbBBBBB
Ini adalah trek dengan dua jalur. Huruf kecil mewakili udara. Anda tidak bisa berlari di udara! Huruf besar mewakili jalan yang bisa Anda jalankan. Tujuan Anda untuk tantangan ini adalah, diberi huruf besar, menampilkan seberapa jauh pembalap yang mulai berlari di jalur itu. Pembalap diizinkan untuk berpindah jalur jika ada bagian jalan langsung di atas atau di bawahnya. Mereka juga diizinkan berlari mundur! Pada trek khusus ini, outputnya adalah 0 untuk setiap input huruf, karena tidak satu pun track memiliki jalan yang dapat dijalankan di posisi 1.
Contoh:
Input: "4A5B4c3C", "A"
Kode ini diperluas ke trek yang terlihat seperti ini:
A) AAAA
B) BBBBB
C) ccccCCC
Output untuk contoh ini adalah 7 , karena pelari mulai dari lajur A bisa turun ke lajur B, dan kemudian lajur C, dan berakhir di posisi ke-7.
Input: "4A2B3D", "D"
Jalur:
A) AAAA
B) BB
C)
D) DDD
Outputnya adalah 3 , karena pelari yang memulai lane D tidak memiliki cara untuk mencapai lane B atau A
Input: "4A4a4A3b6B5C", "A"
Jalur:
A) AAAAaaaaAAAA
B) bbbBBBBBB
C) CCCCC
Outputnya adalah 12 , karena runner pada A dapat beralih ke B, dan kemudian kembali ke A di akhir. Jarak maksimum untuk "C" juga 12. Untuk "B" adalah 0.
Input: "12M4n10N11O", "M"
Jalur:
M) MMMMMMMMMMMM
N) nnnnNNNNNNNNNN
O) OOOOOOOOOOO
Contoh sederhana dengan run-length multi-digit. Output adalah 14 .
Input: "4A5B1b2B4c3C", "A"
Jalur:
A) AAAA
B) BBBBBbBB
C) ccccCCC
Outputnya adalah 8 , karena runner di A bisa turun ke B, lalu turun ke C, lalu kembali ke B. (Terima kasih kepada FryAmTheEggman untuk contoh ini.)
Input: "1a2A2a2B1c1C1d3D", "B"
Jalur:
A)aAAaa
B)BB
C)cC
D)dDDD
Output adalah 4 . Pelari harus memeriksa kedua jalur dua melihat mana yang lebih jauh. (Terima kasih kepada user81655 untuk contoh ini.)
Input: "2A1b1B2C1D3E", "A"
Jalur:
A) AA
B) bB
C) CC
D) D
E) EEE
Output adalah 3 . Anda harus berlari mundur untuk mencapai tujuan terjauh. (Sekali lagi, terima kasih kepada user81655 untuk contoh ini.)
Catatan:
- Jika sebuah trek tidak memiliki huruf pada posisi tertentu, itu dianggap sebagai udara juga. Dengan demikian, jika inputnya adalah "Q" dan tidak ada jalan yang ditempatkan di jalur "Q" maka outputnya harus 0 .
- Ada dua potong input. Yang pertama adalah string yang dikodekan run-length. Yang kedua adalah huruf kapital (Anda dapat menggunakan string atau tipe data char untuk ini.) Untuk keterbacaan, harus ada beberapa pemisah yang masuk akal antara input ini (spasi, baris baru, tab, koma, semi-colon).
- String yang dikodekan run-length akan selalu daftar elemen dalam urutan abjad
- Panjang jalur terpanjang yang paling panjang adalah 1000. Oleh karena itu, output terbesar yang mungkin adalah 1000.
Lacak Generator:
Untuk menghormati jawaban pertama kami, berikut adalah track generator. Cobalah untuk menemukan sesuatu untuk menghilangkan jawaban saat ini! (Catatan: Hanya karena generator tidak menampilkan pesan kesalahan tidak berarti kode lagu Anda valid. Lihat contoh di atas untuk formulir yang tepat.)
function reset() {
var t = document.getElementById("track");
t.innerHTML = "";
for(var i = 0;i<26;i++) {
var c = String.fromCharCode(i+65);
t.innerHTML += "<div><span>"+c+") </span><span id='"+c+"'></span></div>";
}
}
function rand() {
var track = "";
for(var i = 0;i<26;i++) {
var blocks = Math.floor(Math.random()*4);
var start = Math.floor(Math.random()*2);
for(var j = 0;j<blocks;j++) {
var letter = String.fromCharCode(65+i+32*((start+j)%2));
var length = Math.floor(Math.random()*4)+1;
track += length+letter;
}
}
document.getElementById("code").value = track;
}
function gen() {
var s = document.getElementById("code").value;
var check = s.match(/(\d+[A-Za-z])+/);
if(check == null || check[0]!=s) {
alert("Invalid Track");
return false;
}
reset();
var n = s.match(/\d+/g);
var o = s.match(/[A-Za-z]/g);
for(var i = 0;i<n.length;i++) {
var c = o[i].toUpperCase();
document.getElementById(c).textContent += o[i].repeat(n[i]);
}
return true;
}
<body onload="reset()">
Track: <input type="text" id="code" size="75%" /><input type="submit" onclick="gen()" /><input type="button" value="Random Track" onclick="rand()" /><code id="track"/>
</body>
4A2B3D
dapat dihilangkan? Misalnya, menambahkan 0c
? Jika tidak, apakah itu diharapkan ketika mengatakan 1A1Z
diberikan, jalur BY diasumsikan ada (tetapi kosong)?
12M4n10N11O
contoh, keluaran 14, kemudian palsu: jalan mulai terpanjang di M0 dan berakhir pada C0, untuk panjang 25.