পটভূমি
একটি গেমের ভিত্তিতে আমার চার বছর বয়সী তার রাব্বি থেকে পেয়েছে।
"লক্ষ্য" হ'ল অক্ষরগুলিকে একটি নির্দিষ্ট ক্রমে "সন্ধান" করা, যেমন 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বিশেষভাবে?