आपको इनपुट के दो टुकड़े दिए जाएंगे: रन-लेंथ एन्कोडेड प्रारूप में एक स्ट्रिंग जो कि रनिंग ट्रैक को परिभाषित करता है, और एक कैपिटल लेटर जिसमें लेन शुरू करने का प्रतिनिधित्व करता है। उदाहरण के लिए, स्ट्रिंग "3a4A6b5B" का विस्तार "आआआआआआआआआआआबबबबबबबब" होता है। आप ट्रैक बनाने के लिए विस्तारित स्ट्रिंग का उपयोग करते हैं, जैसे:
A) aaaAAAA
B) bbbbbbBBBBB
यह दो लेन वाला ट्रैक है। लोअरकेस अक्षर हवा का प्रतिनिधित्व करते हैं। आप हवा पर नहीं चल सकते! अपरकेस अक्षर उस सड़क का प्रतिनिधित्व करते हैं जिस पर आप चल सकते हैं। इस चुनौती के लिए आपका लक्ष्य, एक बड़े अक्षर को देखते हुए, आउटपुट है कि उस लेन पर शुरू होने वाला एक रेसर कितनी दूर तक चल सकता है। यदि सड़क का एक टुकड़ा सीधे उनके ऊपर या नीचे है, तो रेसरों को लेन को बदलने की अनुमति है। उन्हें पीछे की तरफ दौड़ने की भी अनुमति है! इस विशेष ट्रैक पर किसी भी पत्र इनपुट के लिए आउटपुट 0 है , क्योंकि किसी भी ट्रैक पर स्थिति 1 पर चलने योग्य सड़क नहीं है।
उदाहरण:
इनपुट: "4A5B4c3C", "ए"
यह कोड इस तरह दिखने वाले एक ट्रैक में फैलता है:
A) AAAA
B) BBBBB
C) ccccCCC
इस उदाहरण के लिए आउटपुट 7 है , क्योंकि लेन ए पर शुरू होने वाला धावक बी बी, और फिर लेन सी तक नीचे जा सकता है, और 7 वें स्थान पर समाप्त हो सकता है।
इनपुट: "4A2B3D", "D"
धावन पथ:
A) AAAA
B) BB
C)
D) DDD
आउटपुट 3 है , क्योंकि लेन डी पर शुरू होने वाले धावक के पास लेन बी या ए पर जाने का कोई रास्ता नहीं है
इनपुट: "4 ए 4 ए 4 ए 3 बी 6 बी 5 सी", "ए"
धावन पथ:
A) AAAAaaaaAAAA
B) bbbBBBBBB
C) CCCCC
आउटपुट 12 है , क्योंकि ए पर धावक बी पर स्विच कर सकता है, और फिर अंत में ए पर वापस आ सकता है। "C" के लिए अधिकतम दूरी भी 12. "B" के लिए 0 है।
इनपुट: "12M4n10N11O", "M"
धावन पथ:
M) MMMMMMMMMMMM
N) nnnnNNNNNNNNNN
O) OOOOOOOOOOO
बहु-अंक रन-लंबाई के साथ सरल उदाहरण। आउटपुट 14 है ।
इनपुट: "4A5B1b2B4c3C", "ए"
धावन पथ:
A) AAAA
B) BBBBBbBB
C) ccccCCC
आउटपुट 8 है , क्योंकि A पर धावक B से नीचे जा सकता है, फिर C से नीचे, फिर B से वापस आ सकता है (इस उदाहरण के लिए FryAmTheEggman को धन्यवाद।)
इनपुट: "1 ए 2 ए 2 ए 2 बी 1 सी 1 सी 1 डी 3 डी", "बी"
धावन पथ:
A)aAAaa
B)BB
C)cC
D)dDDD
आउटपुट 4 है । रनर को दोनों रास्तों की जाँच करनी होती है दो देखें जो आगे जाता है। (इस उदाहरण के लिए user81655 का धन्यवाद।)
इनपुट: "2A1b1B2C1D3E", "A"
धावन पथ:
A) AA
B) bB
C) CC
D) D
E) EEE
आउटपुट 3 है । सबसे दूर गंतव्य तक पहुंचने के लिए आपको पीछे की ओर भागना होगा। (एक बार फिर, इस उदाहरण के लिए user81655 का धन्यवाद।)
टिप्पणियाँ:
- यदि किसी ट्रैक पर एक निश्चित स्थान पर एक अक्षर नहीं है, तो वह हवा के रूप में भी गिना जाता है। जैसे, यदि इनपुट "क्यू" है और लेन "क्यू" पर कोई सड़क नहीं रखी गई है तो आउटपुट 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 है, तो गलत है: एम 0 में सबसे लंबे समय तक पथ शुरू होता है और C0 पर समाप्त होता है, की 25 लंबाई के लिए