पृष्ठभूमि
एक खेल के आधार पर मेरे चार वर्षीय अपने रब्बी से मिला।
"लक्ष्य" किसी दिए गए क्रम में अक्षरों को "ढूंढना" है, जैसे aecdb। आपको पत्र कार्डों का ढेर दिया जाता है, जैसे daceb। आप केवल दिए गए क्रम में स्टैक के माध्यम से खोज सकते हैं, यद्यपि यह चक्रीय रूप से है। जब आपको किसी पत्र की जरूरत होती है, तो आप उसे स्टैक से निकाल लेते हैं।
उद्देश्य
एक आदेश और एक स्टैक (एक-दूसरे के डुप्लिकेट-मुक्त क्रमपरिवर्तन) को देखते हुए, शीर्ष स्टैक अक्षरों का अनुक्रम ढूंढें (यह सभी मुद्रण योग्य ASCII है) जो आप गेम खेलते समय देखते हैं।
चरण-दर-चरण उदाहरण
हमें aecdbस्टैक को देखते हुए ऑर्डर ढूंढना होगा daceb:
स्टैक का शीर्ष d: वह नहीं जिसे हम ढूंढ रहे हैं ( a), इसलिए हम इसे अनुक्रम में जोड़ते हैं: dऔर स्टैक प्राप्त करने के लिए घुमाएँ acebd:।
ढेर का शीर्ष a: हाँ! इसलिए हम इसे अनुक्रम में जोड़ते हैं: daऔर इसे स्टैक से हटा दें:cebd:।
स्टैक का शीर्ष c: वह नहीं जिसे हम ढूंढ रहे हैं ( e), इसलिए हम इसे अनुक्रम में जोड़ते हैं: dacऔर स्टैक प्राप्त करने के लिए घुमाएँ ebdc:।
ढेर का शीर्ष e: हाँ! इसलिए हम इसे अनुक्रम में जोड़ते हैं: daceऔर इसे स्टैक से हटा दें bdc:।
स्टैक का शीर्ष b: वह नहीं जिसे हम ढूंढ रहे हैं ( c), इसलिए हम इसे अनुक्रम में जोड़ते हैं: dacebऔर स्टैक प्राप्त करने के लिए घुमाएँ dcb:।
स्टैक का शीर्ष d: वह नहीं जिसे हम ढूंढ रहे हैं ( c), इसलिए हम इसे अनुक्रम में जोड़ते हैं: dacebdऔर स्टैक प्राप्त करने के लिए घुमाएँ cbd:।
ढेर का शीर्ष c: हाँ! इसलिए हम इसे अनुक्रम में जोड़ते हैं: dacebdcऔर इसे स्टैक से हटा दें bd:।
स्टैक का शीर्ष b: वह नहीं जिसे हम ढूंढ रहे हैं ( d), इसलिए हम इसे अनुक्रम में जोड़ते हैं: dacebdcbऔर स्टैक प्राप्त करने के लिए घुमाएँ db:।
ढेर का शीर्ष d: हाँ! इसलिए हम इसे अनुक्रम में जोड़ते हैं: dacebdcbdऔर इसे स्टैक से हटा दें b:।
ढेर का शीर्ष b: हाँ! इसलिए हम इसे अनुक्रम में जोड़ते हैं: dacebdcbdbऔर इसे स्टैक से हटा दें :।
और हम कर रहे हैं। परिणाम है dacebdcbdb।
संदर्भ कार्यान्वयन
def letters(target, stack):
string = ''
while stack:
string += stack[0]
if stack[0] == target[0]:
stack.pop(0)
target = target[1:]
else:
stack.append(stack.pop(0))
return string
print letters('aecdb', list('daceb'))
परीक्षण के मामलों
try, yrt→yrtyry
1234, 4321→4321432434
ABCDEFGHIJKLMNOPQRSTUVWXYZ, RUAHYKCLQZXEMPBWGDIOTVJNSF→RUAHYKCLQZXEMPBWGDIOTVJNSFRUHYKCLQZXEMPWGDIOTVJNSFRUHYKLQZXEMPWGIOTVJNSFRUHYKLQZXMPWGIOTVJNSRUHYKLQZXMPWIOTVJNSRUYKLQZXMPWOTVNSRUYQZXPWOTVSRUYQZXPWTVSRUYQZXWTVSRUYZXWTVSUYZXWTVUYZXWVYZXWYZXYZ
?, ?→?
a, a →a a
abcd, abcd→abcd
99विशेष रूप से क्यों ?