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

পাইথনে স্ট্যাকের এলিমেন্টগুলো পেয়ারওয়াইজ সর্টেড (Pairwise Consecutive) কিনা

একটি স্ট্যাক stk দেওয়া আছে। যাচাই করতে হবে যে স্ট্যাকের এলিমেন্টগুলো পেয়ার বানায় কি egymানTER মানের (consecutive) - বেড়তা বা কমতা পার্থক্য ১। স্ট্যাকের দৈর্ঘ্য বিজোড় হলে উপরের এলিমেন্ট বাদ দেওয়া হয়। 본래 স্ট্যাকের কন্টেন্ট অপরিবর্তিত রাখতে হবে।

উদাহরণ

ইনপুট: stk = [5, 6, -4, -5, 12, 11, 6, 7, 22]

আউটপুট: True

ব্যাখ্যা: উপরের ২২ বাদ দিয়ে পেয়ার: (5,6), (-4,-5), (12,11), (6,7) সবগুলো consecutive।

অ্যালগরিদম

  1. স্ট্যাকের এলিমেন্টগুলো একটি টেম্প লিস্টে রিভার্স করে রাখুন।
  2. মূল স্ট্যাক ক্লিয়ার করুন।
  3. টেম্প লিস্ট থেকে দুটি করে এলিমেন্ট পপ করুন, পার্থক্য ১ কিনা চেক করুন।
  4. পেয়ারগুলো আবার মূল স্ট্যাকে পুশ করুন।
  5. যদি একক এলিমেন্ট বaki থাকে, সেটিও পুশ করুন।

উদাহরণ কোড

def solve(stk):
    temp = stk[::-1]
    stk.clear()
    flag = True
    while len(temp) > 1:
        item_first = temp.pop()
        item_second = temp.pop()
        if abs(item_first - item_second) != 1:
            flag = False
        stk.append(item_first)
        stk.append(item_second)
    if len(temp) == 1:
        stk.append(temp.pop())
    return flag

stk = [5, 6, -4, -5, 12, 11, 6, 7, 22]
print(solve(stk))  # Output: True

ইনপুট

[5, 6, -4, -5, 12, 11, 6, 7, 22]

আউটপুট

True
  1. পাইথনে চেক করা: লিস্টের সকল উপাদান সমান কিনা

  2. পাইথনে লিস্ট সর্টেড কিনা যাচাই করুন

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

  4. পাইথনে এলিমেন্টের দৈর্ঘ্য অনুযায়ী লিস্ট সর্ট করা