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

पायथन में समान लगातार अंतर वाली संख्याएं खोजने का प्रोग्राम


मान लीजिए हमें आकार N का एक ऐरे ढूंढना है जिससे हर दो लगातार अंकों के बीच का निरपेक्ष अंतर K हो। उत्तर में हर संख्या में लीडिंग जीरो नहीं होने चाहिए सिवाय संख्या 0 के।

उदाहरण के लिए, यदि इनपुट N = 4, K = 7 है, तो आउटपुट [1818, 2929, 7070, 8181, 9292] होगा, यहां 0707 वैध नहीं है क्योंकि इसमें लीडिंग 0 है।

हल करने के चरण

  1. यदि N == 1, तो 0 से 9 तक की रेंज से एक नई सूची वापस करें।
  2. queue := 1 से 9 तक के सभी तत्वों के साथ एक क्यू बनाएं।
  3. n को 0 से N - 2 तक लूप चलाएं:
    • len_queue := queue का आकार
    • j को 0 से len_queue - 1 तक लूप चलाएं:
      • num := queue का बायां आइटम, और इसे क्यू से हटा दें।
      • lsd := num % 10
      • यदि lsd - K >= 0, तो num * 10 + lsd - K को क्यू के अंत में डालें।
      • यदि K और lsd + K <= 9, तो num * 10 + lsd + K को क्यू के अंत में डालें।
  4. queue के तत्व वापस करें।

उदाहरण

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

from collections import deque
def solve(N, K):
    if N == 1:
        return list(range(10))
    queue = deque(list(range(1, 10)))
    for n in range(N - 1):
        len_queue = len(queue)
        for j in range(len_queue):
            num = queue.popleft()
            lsd = num % 10
            if lsd - K >= 0:
                queue.append(num * 10 + lsd - K)
            if K and lsd + K <= 9:
                queue.append(num * 10 + lsd + K)
    return list(queue)

N = 4
K = 7
print(solve(N, K))

इनपुट

4, 7

आउटपुट

[1818, 2929, 7070, 8181, 9292]
  1. Python से सबट्री में समान लेबल वाले नोड्स की संख्या कैसे ढूंढें? Python से सबट्री में समान लेबल वाले नोड्स की संख्या कैसे ढूंढें?

    रूटेड ट्री में प्रत्येक नोड के लिए, उसके सबट्री में उसी लेबल वाले नोड्स की संख्या ढूंढें (लेबल्स लोअरकेस लेटर्स)। एल्गोरिदम एज लिस्ट से ग्राफ बनाएं (अनडायरेक्टेड)। लेबल मैप बनाएं। रिकर्सिव DFS r(ni): चिल्ड्रन के काउंटर्स मर्ज करें, अपना लेबल जोड़ें, R[ni] = count[label]। पैरेंट लिंक हटाकर साइकिल अव

  1. - पायथन में लगातार सामान्य वर्णों वाले सबस्ट्रिंग की लंबाई खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक स्ट्रिंग s है, हमें समान वर्णों वाले सबसे लंबे सबस्ट्रिंग की लंबाई ढूंढनी है। उदाहरण के लिए, यदि इनपुट abbbaccabbbba है, तो आउटपुट 4 होगा, क्योंकि चार लगातार b हैं। इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे: यदि s का आकार 0 है, तो 0 वापस करें s := s + खाली स्थान ct :=

  1. - Python प्रोग्राम: तीन संख्याओं में से अधिकतम खोजें

    इस ट्यूटोरियल में, हम एक प्रोग्राम लिखेंगे जो तीन आंकड़ों में से अधिकतम राशि ढूंढता है। हमारे पास तीन संख्याएं होंगी, और हमारा लक्ष्य उन तीन संख्याओं में से अधिकतम संख्या ढूंढना है।बेहतर समझ के लिए कुछ नमूना टेस्ट केस देखें।इनपुट: a, b, c = 2, 34, 4 आउटपुट: 34इनपुट: a, b, c = 25, 3, 12 आउटपुट: 25इनप