मान लीजिए हमारे पास कैंडीज नामक संख्याओं की एक सूची है और कोई अपने मित्र के विरुद्ध खेल खेल रहा है। प्रत्येक दौर में, एक खिलाड़ी समान मूल्य वाली किन्हीं दो लगातार कैंडीज को हटा सकता है। और जो कोई कैंडी नहीं उठा सकता वह हार जाता है और वह खिलाड़ी1 पहले शुरू करता है, हमें यह जांचना होगा कि खिलाड़ी1 जीतेगा या नहीं।
इसलिए, यदि इनपुट nums =[2, 2, 5] जैसा है, तो आउटपुट ट्रू होगा, जैसे कि खिलाड़ी 1 2s को चुनता है तो दूसरा खिलाड़ी कोई कैंडी नहीं चुन सकता है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:
-
स्टैक :=एक नया स्टैक
-
मोड़ :=0
-
अंकों में प्रत्येक अंक के लिए, करें
-
यदि स्टैक खाली नहीं है और स्टैक का शीर्ष अंक के समान है, तो
-
स्टैक से पॉप करें
-
मुड़ता है :=मुड़ता है + 1
-
-
अन्यथा,
-
संख्या को स्टैक में पुश करें
-
-
-
जब मोड़ विषम हो तो सही हो जाता है अन्यथा गलत होता है
उदाहरण
class Solution: def solve(self, nums): stack = [] turns = 0 for num in nums: if stack and stack[-1] == num: stack.pop() turns += 1 else: stack.append(num) return bool(turns & 1) ob = Solution() nums = [2, 2, 5] print(ob.solve(nums))
इनपुट
[2, 2, 5]
आउटपुट
True