মান लीজिए আমাদের সংখ্যाओं দিয়ে ভরা একটি কিউ আছে। আমাদের যাচাই করতে হবে কিউতে തുടশ উপাদানগুলো জোড়াভাবে সřadগত (pairwise consecutive) কিনা।
যেমন, ইনপুট যদি que = [3,4,6,7,8,9] হয়, তবে আউটপুট হবে True।
সমাধানের ধাপসমূহ
q:= একটি কিউ সংজ্ঞায়িত করুন এবং দেওয়া লিস্টের সব উপাদানq-তে ইনসার্ট করুনtemp:= একটি নতুন লিস্টqখালি না হওয়া পর্যন্ত, করুন:- কিউ-এর ফ্রন্ট উপাদান
temp-এ ইনসার্ট করুন এবং কিউ থেকে ফ্রন্ট উপাদান ডিলিট করুন
- কিউ-এর ফ্রন্ট উপাদান
temp2:= একটি নতুন লিস্টtempখালি না হওয়া পর্যন্ত, করুন:temp-এর শেষ উপাদানtemp2-এ ইনসার্ট করুনtemp-এর শেষ উপাদান ডিলিট করুন
result := Truetemp2-র সাইজ ১-এর চেয়ে বড় থাকা পর্যন্ত, করুন:x := temp2-এর শেষ উপাদানtemp2-এর শেষ উপাদান ডিলিট করুনy := temp2-এর শেষ উপাদানtemp2-এর শেষ উপাদান ডিলিট করুন- যদি
|x - y|১ না হয়, তবে:result := False
xএবংyকিউ-তে ইনসার্ট করুন
- যদি
temp2-র সাইজ ১ হয়, তবে:temp2-এর শেষ উপাদান কিউ-তে ইনসার্ট করুন
resultরিটার্ন করুন
উদাহরণ
বेहतर বোঝার জন্য নিচের বাস্তবায়নটি দেখুন:
import queue
def solve(que):
q = queue.Queue()
for i in que:
q.put(i)
temp = []
while q.qsize() != 0:
temp.append(q.queue[0])
q.get()
temp2 = []
while len(temp) != 0:
temp2.append(temp[len(temp) - 1])
temp.pop()
result = bool(True)
while len(temp2) > 1:
x = temp2[len(temp2) - 1]
temp2.pop()
y = temp2[len(temp2) - 1]
temp2.pop()
if abs(x - y) != 1:
result = False
q.put(x)
q.put(y)
if len(temp2) == 1:
q.put(temp2[len(temp2) - 1])
return result
que = [3,4,6,7,8,9]
print(solve(que))
ইনপুট
[3,4,6,7,8,9]
আউটপুট
True