কম্পিউটার

পাইথনে বিভিন্ন মেইলবক্স থেকে গুরুত্বপূর্ণ মেইল ​​বাছাই করার প্রোগ্রাম


ধরুন আমাদের কাছে মেইলবক্সের একটি তালিকা আছে। এখানে প্রতিটি মেলবক্সে স্ট্রিংগুলির একটি তালিকা দেওয়া হয়েছে, এখানে প্রতিটি স্ট্রিং জাঙ্কের জন্য হয় "J", ব্যক্তিগত জন্য "P", কাজের জন্য "W"। আমরা প্রথম মেলবক্স থেকে শুরু করে রাউন্ড রবিন ক্রমে প্রতিটি মেলবক্সের মধ্য দিয়ে যাব, J-কে ফিল্টার করে, একটি একক তালিকা তৈরি করতে এবং তালিকাটি ফেরত দিতে।

সুতরাং, যদি ইনপুট মেইলবক্সের মত হয় =[["W", "P"],["J", "P", "J"],["W"]], তাহলে আউটপুট হবে ["W" , "W", "P", "P"], ক্রমানুসারে এবং ফিল্টারিং ছাড়াই, আমাদের কাছে W -> J -> W -> P -> P -> J আছে, এখন যেহেতু আমরা আবর্জনা ফিল্টার করি তখন আমরা W পাই -> W -> P -> P.

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • n_mailboxes :=মেইলবক্সের আকার
  • ফলাফল :=একটি নতুন তালিকা
  • গণনা :=n_মেইলবক্সের আকারের একটি তালিকা, তারপর 0 দিয়ে পূরণ করুন
  • আরো :=সত্য
  • যদিও বেশি অ-শূন্য, কর
    • আরো :=মিথ্যা
    • আমি 0 থেকে n_mailবক্সের রেঞ্জের জন্য, কর
      • সূচী :=গণনা[i], মেইলবক্স :=মেইলবক্স[i]
      • যদি সূচক <মেলবক্সের আকার হয়, তাহলে
        • আরো :=সত্য
        • গণনা[i] :=গণনা[i] + 1
        • মেইল :=মেইলবক্স[সূচী]
        • যদি মেইলটি "J" এর মত না হয়, তাহলে
          • ফলাফলের শেষে মেল ঢোকান
  • ফলাফল

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

class Solution:
   def solve(self, mailboxes):
      n_mailboxes = len(mailboxes)
      result = []
      counts = [0]*n_mailboxes
      more = True
      while more:
         more = False
         for i in range(n_mailboxes):
            index, mailbox = counts[i], mailboxes[i]
            if index < len(mailbox):
               more = True
               counts[i] += 1
               mail = mailbox[index]
               if mail != "J":
                  result.append(mail)
         return result
ob = Solution()
mailboxes = [["W", "P"],["J", "P", "J"],["W"]]
print(ob.solve(mailboxes))

ইনপুট

[["W", "P"],["J", "P", "J"],["W"]]

আউটপুট

['W', 'W', 'P', 'P']

  1. পাইথন প্রোগ্রামের একটি স্ট্রিং থেকে nম অক্ষর সরানো হচ্ছে

  2. পাইথন প্রোগ্রাম সেট থেকে আইটেম অপসারণ

  3. একটি তালিকা থেকে অনন্য মান প্রিন্ট করতে পাইথন প্রোগ্রাম

  4. পাইথন প্রোগ্রাম একটি আইপি অ্যাড্রেস থেকে লিডিং 0 মুছে ফেলতে