मान लीजिए हमारे पास एक संख्या n है, जो कन्वेंशन में प्रवेश करने वाले प्रोग्रामर्स की संख्या दर्शाती है, और हमारे पास संख्याओं की एक सूची है, जहां कन्वेंशन 1 एक प्रोग्रामर को दर्शाता है और 0 खाली स्थान को दर्शाता है। अब शर्त यह है कि कोई दो प्रोग्रामर अगल-बगल नहीं बैठ सकते, हमें जांचना है कि क्या सभी n प्रोग्रामर कन्वेंशन में प्रवेश कर सकते हैं या नहीं।
उदाहरण के लिए, यदि इनपुट n = 2, convention = [0, 0, 1, 0, 0, 0, 1] है, तो आउटपुट True होगा।
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
- i को 0 से conv के आकार तक के लिए करें:
- a := 0 यदि i-1 < 0 अन्यथा i-1
- b := conv का आकार -1 यदि i+1 >= conv का आकार अन्यथा i+1
- यदि conv[i] == 0 और conv[a] == 0 और conv[b] == 0, तो:
- conv[i] := 1
- n := n - 1
- सत्य वापस करें यदि n <= 0, अन्यथा असत्य
उदाहरण
class Solution:
def solve(self, n, conv):
for i in range(len(conv)):
a = 0 if i-1 < 0 else i-1
b = len(conv)-1 if i+1 >= len(conv) else i+1
if conv[i] == 0 and conv[a] == 0 and conv[b] == 0:
conv[i] = 1
n -= 1
return n <= 0
ob = Solution()
n = 2
convention = [0, 0, 1, 0, 0, 0, 1]
print(ob.solve(n, convention))
इनपुट
2, [0, 0, 1, 0, 0, 0, 1]
आउटपुट
True