คุณจะได้รับอินพุตสองส่วน: สตริงในรูปแบบที่เข้ารหัสแบบรันไทม์ที่กำหนดแทร็กการวิ่งและอักษรตัวใหญ่ที่แสดงถึงช่องทางที่จะเริ่มต้น ตัวอย่างเช่นสตริง "3a4A6b5B" ขยายเป็น "aaaAAAAbbbbbbbBBBBB" จากนั้นคุณใช้สตริงที่ขยายเพื่อสร้างแทร็กเช่น:
A) aaaAAAA
B) bbbbbbBBBBB
นี่คือแทร็กที่มีสองเลน อักษรตัวพิมพ์เล็กเป็นตัวแทนของอากาศ คุณไม่สามารถวิ่งบนอากาศได้! ตัวอักษรตัวพิมพ์ใหญ่แสดงถนนที่คุณสามารถวิ่งได้ เป้าหมายของคุณสำหรับความท้าทายนี้คือให้อักษรตัวใหญ่แสดงว่านักแข่งที่เริ่มวิ่งบนเลนนั้นสามารถวิ่งได้ไกลแค่ไหน นักแข่งได้รับอนุญาตให้เปลี่ยนเลนหากมีชิ้นส่วนของถนนอยู่ด้านบนหรือด้านล่าง พวกเขายังได้รับอนุญาตให้วิ่งถอยหลัง! ในแทร็คนี้โดยเฉพาะผลลัพธ์คือ0สำหรับอินพุตตัวอักษรใด ๆ เนื่องจากไม่มีแทร็กใดที่วิ่งบนถนนที่ตำแหน่ง 1
ตัวอย่าง:
อินพุต: "4A5B4c3C", "A"
รหัสนี้ขยายไปยังแทร็กที่มีลักษณะดังนี้:
A) AAAA
B) BBBBB
C) ccccCCC
ผลลัพธ์สำหรับตัวอย่างนี้คือ7เนื่องจากนักวิ่งที่เริ่มต้นบนเลน A สามารถเลื่อนลงไปที่เลน B จากนั้นเลน C และจบที่ตำแหน่งที่ 7
อินพุต: "4A2B3D", "D"
ติดตาม:
A) AAAA
B) BB
C)
D) DDD
ผลลัพธ์คือ3เนื่องจากนักวิ่งที่เริ่มต้นบนเลน D ไม่มีทางที่จะไปยังเลน B หรือ A
อินพุต: "4A4a4A3b6B5C", "A"
ติดตาม:
A) AAAAaaaaAAAA
B) bbbBBBBBB
C) CCCCC
ผลลัพธ์คือ12เพราะนักวิ่งบน A สามารถสลับไปที่ B แล้วกลับมาที่ A ในตอนท้าย ระยะทางสูงสุดสำหรับ "C" คือ 12 สำหรับ "B" คือ 0
อินพุต: "12M4n10N11O", "M"
ติดตาม:
M) MMMMMMMMMMMM
N) nnnnNNNNNNNNNN
O) OOOOOOOOOOO
ตัวอย่างง่าย ๆ ที่มีความยาวหลายหลัก เอาท์พุทเป็น14
อินพุต: "4A5B1b2B4c3C", "A"
ติดตาม:
A) AAAA
B) BBBBBbBB
C) ccccCCC
ผลลัพธ์คือ8เพราะนักวิ่งที่ A สามารถลงไปที่ B จากนั้นลงไปที่ C จากนั้นกลับมาที่ B (ขอบคุณ FryAmTheEggman สำหรับตัวอย่างนี้)
อินพุต: "1a2A2a2B1c1C1d3D", "B"
ติดตาม:
A)aAAaa
B)BB
C)cC
D)dDDD
ผลผลิตที่4 รองชนะเลิศต้องตรวจสอบเส้นทางทั้งสองดูว่าจะไปไหนต่อไป (ขอบคุณ user81655 สำหรับตัวอย่างนี้)
อินพุต: "2A1b1B2C1D3E", "A"
ติดตาม:
A) AA
B) bB
C) CC
D) D
E) EEE
การส่งออกเป็น3 คุณต้องวิ่งถอยหลังเพื่อไปยังปลายทางที่ไกลที่สุด (อีกครั้งขอขอบคุณ user81655 สำหรับตัวอย่างนี้)
หมายเหตุ:
- หากแทร็กไม่มีตัวอักษรที่ตำแหน่งใดตำแหน่งหนึ่งจะนับว่าเป็นอากาศเช่นกัน เช่นถ้าใส่คือ "Q" และไม่มีถนนได้ถูกวางไว้บนถนน "Q" การส่งออกที่ควรจะเป็น0
- มีอินพุตสองส่วน ที่แรกก็คือความยาวสายอักขระที่เข้ารหัส อย่างที่สองคือตัวอักษรพิมพ์ใหญ่ (คุณสามารถใช้สตริงหรืออักขระประเภทข้อมูลสำหรับสิ่งนี้) เพื่อความสะดวกในการอ่านควรมีตัวคั่นที่เหมาะสมระหว่างอินพุตเหล่านี้ (ช่องว่าง, บรรทัดใหม่, แท็บ, จุลภาค, เซมิโคลอน)
- สตริงที่เข้ารหัสความยาวรันจะแสดงรายการองค์ประกอบตามลำดับตัวอักษรเสมอ
- ความยาวทั้งหมดของเลนที่ยาวที่สุดคือ 1000 ดังนั้นเอาต์พุตที่ยิ่งใหญ่ที่สุดคือ 1000
ติดตามเครื่องกำเนิด:
เพื่อเป็นเกียรติแก่คำตอบแรกของเรานี่คือตัวสร้างแทร็ก ลองคิดสิ่งที่ตอหาคำตอบปัจจุบัน! (หมายเหตุ: เพียงเพราะตัวสร้างไม่แสดงข้อความแสดงข้อผิดพลาดไม่ได้หมายความว่ารหัสแทร็คของคุณนั้นถูกต้องดูตัวอย่างด้านบนสำหรับรูปแบบที่เหมาะสม)
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
หรือไม่? ตัวอย่างเช่นการเพิ่ม0c
? หากไม่เป็นเช่นนั้นคาดว่า1A1Z
จะได้รับเมื่อมีการพูดเลนโดยจะถือว่ามีอยู่ (แต่ว่างเปล่า)?
12M4n10N11O
ตัวอย่างเช่นการส่งออก 14 นั้นก็เป็นเท็จเส้นทางที่ยาวที่สุดเริ่มต้นที่ M0 และสิ้นสุดที่ C0 สำหรับความยาวของ 25