কম্পিউটার টিউটোরিয়াল

পাইথনে কিউ উপাদান জোড়াভাবে সрядগত কিনা তা যাচাই করা

মান लीজिए আমাদের সংখ্যाओं দিয়ে ভরা একটি কিউ আছে। আমাদের যাচাই করতে হবে কিউতে തുടশ উপাদানগুলো জোড়াভাবে সřadগত (pairwise consecutive) কিনা।

যেমন, ইনপুট যদি que = [3,4,6,7,8,9] হয়, তবে আউটপুট হবে True।

সমাধানের ধাপসমূহ

  • q := একটি কিউ সংজ্ঞায়িত করুন এবং দেওয়া লিস্টের সব উপাদান q-তে ইনসার্ট করুন
  • temp := একটি নতুন লিস্ট
  • q খালি না হওয়া পর্যন্ত, করুন:
    • কিউ-এর ফ্রন্ট উপাদান temp-এ ইনসার্ট করুন এবং কিউ থেকে ফ্রন্ট উপাদান ডিলিট করুন
  • temp2 := একটি নতুন লিস্ট
  • temp খালি না হওয়া পর্যন্ত, করুন:
    • temp-এর শেষ উপাদান temp2-এ ইনসার্ট করুন
    • temp-এর শেষ উপাদান ডিলিট করুন
  • result := True
  • temp2-র সাইজ ১-এর চেয়ে বড় থাকা পর্যন্ত, করুন:
    • 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
  1. পাইথনে চেক করা: লিস্টের সকল উপাদান সমান কিনা

  2. পাইথনে লিস্টে ক্রমাগত এলিমেন্ট জোড়া 만들기

  3. পাইথনে চেক করা সব লিস্ট এলিমেন্ট একই কিনা

  4. পাইথনে বাইনারি সংখ্যায় K ক্রমাগত ১ আছে কিনা যাচাই করার প্রোগ্রাম