मान लीजिए हमारे पास मेलबॉक्स की एक सूची है। यहां प्रत्येक मेलबॉक्स में स्ट्रिंग्स की एक सूची दी गई है, यहां प्रत्येक स्ट्रिंग या तो जंक के लिए "J", व्यक्तिगत के लिए "P", कार्य के लिए "W" है। हम पहले मेलबॉक्स से शुरू होने वाले राउंड रॉबिन क्रम में प्रत्येक मेलबॉक्स के माध्यम से जाएंगे, J को फ़िल्टर करके, एक सूची बनाने और सूची वापस करने के लिए।
इसलिए, यदि इनपुट मेलबॉक्स =[["डब्ल्यू", "पी"], ["जे", "पी", "जे"], ["डब्ल्यू"]] की तरह है, तो आउटपुट ["डब्ल्यू" होगा। , "W", "P", "P"], क्रम में और बिना फ़िल्टर किए, हमारे पास W -> J -> W -> P -> P -> J है, अब जब से हम कबाड़ को फ़िल्टर करते हैं तो हमें W मिलता है -> डब्ल्यू -> पी -> पी.
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- n_mailboxes :=मेलबॉक्स का आकार
- परिणाम:=एक नई सूची
- गणना :=n_mailboxes के आकार की एक सूची, फिर 0 से भरें
- अधिक :=सत्य
- जबकि अधिक शून्य नहीं है, करें
- अधिक :=गलत
- मेरे लिए 0 से n_mailboxes की सीमा में, करें
- सूचकांक:=मायने रखता है[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']