Bạn sẽ được cung cấp hai phần đầu vào: một chuỗi ở định dạng được mã hóa theo chiều dài chạy xác định đường chạy và chữ in hoa thể hiện làn đường để bắt đầu. Ví dụ: chuỗi "3a4A6b5B" mở rộng thành "aaaAAAAbbbbbbBBBBB". Sau đó, bạn sử dụng chuỗi mở rộng để tạo một bản nhạc, như sau:
A) aaaAAAA
B) bbbbbbBBBBB
Đây là một đường đua với hai làn đường. Chữ thường đại diện cho không khí. Bạn không thể chạy trên không! Chữ in hoa đại diện cho con đường bạn có thể chạy. Mục tiêu của bạn cho thử thách này là, được đặt một chữ in hoa, cho ra một tay đua bắt đầu đi trên làn đường đó có thể chạy bao xa. Các tay đua được phép chuyển làn nếu có một đoạn đường ngay phía trên hoặc bên dưới chúng. Họ cũng được phép chạy ngược! Trên bản nhạc cụ thể này, đầu ra là 0 cho bất kỳ đầu vào chữ cái nào, bởi vì cả hai bản nhạc đều không có đường chạy ở vị trí 1.
Ví dụ:
Đầu vào: "4A5B4c3C", "A"
Mã này mở rộng thành một bản nhạc trông như thế này:
A) AAAA
B) BBBBB
C) ccccCCC
Đầu ra cho ví dụ này là 7 , vì một người chạy bắt đầu trên làn A có thể di chuyển xuống làn B, rồi sang làn C và kết thúc ở vị trí thứ 7.
Đầu vào: "4A2B3D", "D"
Theo dõi:
A) AAAA
B) BB
C)
D) DDD
Đầu ra là 3 , vì một người chạy bắt đầu ở làn D không có cách nào để đến làn B hoặc A
Đầu vào: "4A4a4A3b6B5C", "A"
Theo dõi:
A) AAAAaaaaAAAA
B) bbbBBBBBB
C) CCCCC
Đầu ra là 12 , vì người chạy trên A có thể chuyển sang B, và sau đó quay lại A ở cuối. Khoảng cách tối đa cho "C" cũng là 12. Với "B", nó là 0.
Đầu vào: "12M4n10N11O", "M"
Theo dõi:
M) MMMMMMMMMMMM
N) nnnnNNNNNNNNNN
O) OOOOOOOOOOO
Ví dụ đơn giản với độ dài chạy nhiều chữ số. Đầu ra là 14 .
Đầu vào: "4A5B1b2B4c3C", "A"
Theo dõi:
A) AAAA
B) BBBBBbBB
C) ccccCCC
Đầu ra là 8 , vì người chạy tại A có thể xuống B, sau đó xuống C, sau đó quay lại B. (Cảm ơn FryAmTheEggman vì ví dụ này.)
Đầu vào: "1a2A2a2B1c1C1d3D", "B"
Theo dõi:
A)aAAaa
B)BB
C)cC
D)dDDD
Đầu ra là 4 . Người chạy phải kiểm tra cả hai con đường để xem cái nào đi xa hơn. (Cảm ơn user81655 vì ví dụ này.)
Đầu vào: "2A1b1B2C1D3E", "A"
Theo dõi:
A) AA
B) bB
C) CC
D) D
E) EEE
Đầu ra là 3 . Bạn phải chạy ngược để đến đích xa nhất. (Một lần nữa, nhờ user81655 cho ví dụ này.)
Ghi chú:
- Nếu một bản nhạc không có chữ cái ở một vị trí nhất định, thì nó cũng được tính là không khí. Như vậy, nếu đầu vào là "Q" và không có đường nào được đặt trên làn "Q" thì đầu ra phải là 0 .
- Có hai phần đầu vào. Đầu tiên là một chuỗi mã hóa có độ dài chạy. Thứ hai là chữ in hoa (bạn có thể sử dụng chuỗi hoặc kiểu dữ liệu char cho việc này.) Để dễ đọc, cần có một khoảng cách hợp lý giữa các đầu vào này (dấu cách, dòng mới, tab, dấu phẩy, dấu chấm phẩy).
- Chuỗi được mã hóa theo chiều dài chạy sẽ luôn liệt kê các phần tử theo thứ tự bảng chữ cái
- Chiều dài rất dài toàn bộ chiều dài của một làn có thể là 1000. Do đó, sản lượng lớn nhất có thể là 1000.
Máy phát điện theo dõi:
Để vinh danh câu trả lời đầu tiên của chúng tôi, đây là một trình tạo theo dõi. Hãy cố gắng đưa ra một cái gì đó để bỏ qua các câu trả lời hiện tại! (Lưu ý: Chỉ vì trình tạo không hiển thị thông báo lỗi không có nghĩa là mã theo dõi của bạn nhất thiết phải hợp lệ. Xem các ví dụ ở trên để có hình thức phù hợp.)
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
có thể được loại bỏ? Chẳng hạn, thêm 0c
? Nếu không, dự kiến khi nói 1A1Z
đã được đưa ra, làn đường BY được giả sử tồn tại (nhưng trống)?
12M4n10N11O
ví dụ, đầu ra 14, sau đó giả: dài nhất bắt đầu con đường tại M0 và kết thúc tại C0, cho chiều dài 25.