मान लीजिए कि हमारे पास एक कमरे में n बल्ब हैं, इन बल्बों की संख्या 0 से n-1 तक है। हमें उन्हें बाएँ से दाएँ एक पंक्ति में व्यवस्थित करना है। प्रारंभ में, सभी बल्ब बंद कर दिए जाते हैं (0-राज्य)। हमें दिए गए लक्ष्य सरणी 't' द्वारा दर्शाए गए कॉन्फ़िगरेशन को प्राप्त करना होगा जहां t[i] '1' है यदि ith बल्ब चालू है और यदि यह बंद है तो '0'। हमारे पास बल्ब की स्थिति को फ्लिप करने के लिए एक स्विच भी है। और फ़्लिपिंग ऑपरेशन को इस प्रकार परिभाषित किया गया है -
-
कोई भी बल्ब इंडेक्स चुनें i.
-
प्रत्येक बल्ब को अनुक्रमणिका i से अनुक्रमणिका n - 1. पर फ़्लिप करें।
हमें लक्ष्य बनाने के लिए आवश्यक फ़्लिप की न्यूनतम संख्या ज्ञात करनी होगी।
इसलिए, यदि इनपुट t ="0101" जैसा है, तो आउटपुट 3 होगा, यदि हम दूसरे बल्ब से शुरू करते हैं, तो अगला कॉन्फ़िगरेशन "0111" होगा, फिर तीसरे से, यह "0100" होगा, फिर अंतिम फ्लिप करें इसे "0101" बनाने के लिए बल्ब
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
गिनती :=0
-
एक्स:='0'
-
प्रत्येक के लिए मैं टी में, करो
-
अगर मैं x के समान नहीं हूं, तो
-
गिनती :=गिनती + 1
-
एक्स:=मैं
-
-
-
वापसी की संख्या
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
def solve(t): count = 0 x = '0' for i in t: if i != x: count += 1 x = i return count t = "0101" print(solve(t))
इनपुट
"0101"
आउटपुट
3