Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में लगातार समान बिट्स को हटाने के लिए ऑपरेशन गिनें


मान लीजिए हमारे पास एक बाइनरी स्ट्रिंग s है। अब एक ऑपरेशन पर विचार करें जहां हम एक बिट चुनते हैं और उसके मान को 0 से 1 या इसके विपरीत फ्लिप करते हैं। हमें उस न्यूनतम ऑपरेशन की संख्या ढूंढनी है जिससे एक ऐसी स्ट्रिंग मिले जिसमें तीन समान लगातार बिट्स न हों।

उदाहरण के लिए, यदि इनपुट है s = "10011100", तो आउटपुट 1 होगा, क्योंकि हम इंडेक्स 4 पर 1 को 0 में फ्लिप करके स्ट्रिंग को "10010100" बना सकते हैं जहां कोई तीन लगातार समान बिट्स नहीं हैं।

समाधान दृष्टिकोण

  • l := 0, count := 0
  • जब तक l < s का आकार:
    • r := l
    • जब तक r < s का आकार और s[r], s[l] के समान है:
      • r := r + 1
    • count := count + ((r - l) // 3) का फ्लोर मान
    • l := r
  • count लौटाएं

उदाहरण कोड

def solve(s):
    l = 0
    count = 0
    while l < len(s):
        r = l
        while r < len(s) and s[r] == s[l]:
            r += 1
        count += (r - l) // 3
        l = r
    return count

s = "10011100"
print(solve(s))

इनपुट

"10011100"

आउटपुट

1
  1. पायथन प्रोग्राम: लगातार 1 के बिना बाइनरी स्ट्रिंग्स की संख्या गिनें पायथन प्रोग्राम: लगातार 1 के बिना बाइनरी स्ट्रिंग्स की संख्या गिनें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक धनात्मक पूर्णांक N दिया गया है, हमें लंबाई N की सभी संभावित अलग बाइनरी स्ट्रिंग्स गिननी हैं जिनमें लगातार 1 न हों। उदाहरण # स्ट्रिंग्स की संख्या गिनें def countStrings(n): a = [0 for i in range(n)] b = [0 for i in r

  1. पायथन प्रोग्राम: सरणी में इनवर्जन गिनें पायथन प्रोग्राम: सरणी में इनवर्जन गिनें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक लिस्ट दी गई है, हमें आवश्यक इनवर्जन गिनने और प्रदर्शित करने हैं। इनवर्जन काउंट यह गिनकर प्राप्त किया जाता है कि सरणी को क्रमबद्ध करने के लिए कितने चरणों की आवश्यकता है। उदाहरण arr[j]): inv_count += 1 re

  1. - संख्या में कुल बिट्स गिनने के लिए पायथन प्रोग्राम

    समस्या विवरण सबसे पहले हम एक संख्या इनपुट करते हैं फिर bin() फंक्शन का उपयोग करके इस संख्या को बाइनरी में बदलते हैं और अगला आउटपुट स्ट्रिंग के पहले दो वर्ण 0b को हटाते हैं, फिर बाइनरी स्ट्रिंग की लंबाई की गणना करते हैं। उदाहरण इनपुट: 200 आउटपुट: 8 व्याख्या 200 का बाइनरी प्रतिनिधित्व 11001000 है