ধরুন আমাদের সংখ্যায় পূর্ণ একটি সারি আছে। আমাদের পরীক্ষা করতে হবে সারিতে থাকা ক্রমাগত উপাদানগুলি জোড়া অনুসারে ধারাবাহিক কিনা।
সুতরাং, যদি ইনপুটটি que =[3,4,6,7,8,9] এর মত হয়, তাহলে আউটপুট হবে True।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- q :=একটি সারি নির্ধারণ করুন এবং প্রদত্ত তালিকা থেকে q এ সমস্ত উপাদান সন্নিবেশ করুন
- temp :=একটি নতুন তালিকা
- যখন q খালি নয়, কর
- টেম্পের মধ্যে সারির সামনের উপাদান ঢোকান এবং সারি থেকে সামনের উপাদান মুছে দিন
- temp2 :=একটি নতুন তালিকা
- যখন temp খালি নয়, do
- temp2-এ temp-এর শেষ উপাদান ঢোকান
- টেম্প থেকে শেষ উপাদান মুছুন
- ফলাফল :=সত্য
- যখন temp2> 1 এর সাইজ, do
- x :=temp2 এর শেষ উপাদান
- temp2 থেকে শেষ উপাদান মুছুন
- y :=temp2 এর শেষ উপাদান
- temp2 থেকে শেষ উপাদান মুছুন
- যদি |x - y| 1 নয়, তারপর
- ফলাফল :=মিথ্যা
- q এর মধ্যে x এবং y ঢোকান
- যদি temp2 এর আকার 1 হয়, তাহলে
- টেম্প২-এর শেষ উপাদানটি q-তে সন্নিবেশ করান
- ফলাফল
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
ইম্পোর্ট queuedef solve(que):q =queue.Queue() i এর জন্য que:q.put(i) temp =[] যখন q.qsize() !=0:temp.append(q.queue[ 0]) q.get() temp2 =[] while len(temp) !=0:temp2.append(temp[len(temp) - 1]) temp.pop() ফলাফল =bool(True) যখন len(temp2) )> 1:x =temp2[len(temp2) - 1] temp2.pop() y =temp2[len(temp2) - 1] temp2.pop() যদি abs(x - y) হয়!=1:ফলাফল =মিথ্যা q.put(x) q.put(y) if len(temp2) ==1:q.put(temp2[len(temp2) - 1]) রিটার্ন ফলাফল =[3,4,6,7,8,9 ]প্রিন্ট(সল্ভ(কিউ))
ইনপুট
<প্রে>[3,4,6,7,8,9]আউটপুট
সত্য