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

पायथन में दो संख्या सूचियों से गायब संख्याएं ढूंढने का प्रोग्राम

मान लीजिए हमारे पास nums1 और nums2 नामक संख्याओं की दो सूचियां हैं। कुछ एलिमेंट्स जरूरी नहीं कि यूनिक हों। लेकिन ये दोनों सूचियां वास्तव में संख्याओं के समान सेट के अलग-अलग परमुटेशन हैं। हालांकि, उनमें से कुछ गायब हैं। हमें इन दोनों सूचियों की गायब संख्याएं ढूंढनी हैं और उन सभी को प्रिंट करना है।

तो, यदि इनपुट nums1 = [4,5,8,8,6,9] nums2 = [3,4,4,8,8,8,6,9,5,8] है, तो आउटपुट [3,4,8,8] होगा क्योंकि हम देख सकते हैं 3 nums1 में मौजूद नहीं है, लेकिन यह nums2 में है, इसलिए यह गायब है। 4 दोनों में मौजूद है लेकिन nums2 में दो 4s हैं लेकिन nums1 में केवल एक है, इसलिए एक 4 गायब है। इसी तरह nums2 में चार 8s हैं, लेकिन nums1 में केवल 2 हैं, इसलिए दो गायब हैं।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:

  • c1 := nums1 में मौजूद प्रत्येक एलिमेंट की फ्रीक्वेंसी वाली सूची
  • c2 := nums2 में मौजूद प्रत्येक एलिमेंट की फ्रीक्वेंसी वाली सूची
  • all_nums := nums1 और nums2 से सभी अलग-अलग नंबरों वाला सेट
  • res := एक नई सूची
  • all_nums में प्रत्येक n के लिए, करें
    • यदि n, c1 में नहीं है, तो
      • n को c2[n] बार res में डालें
    • अन्यथा जब n, c2 में नहीं है, तो
      • n को c1[n] बार res में डालें
    • अन्यथा,
      • यदि c1[n], c2[n] के समान नहीं है, तो
        • n को |c1[n]- c2[n]| बार res में डालें
  • res लौटाएं

उदाहरण

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

from collections import Counter
def solve(nums1, nums2):
    c1 = Counter(nums1)
    c2 = Counter(nums2)
    all_nums = set(nums1) | set(nums2)
    res = []
    for n in all_nums:
        if n not in c1:
            res = res + [n]*c2[n]
        elif n not in c2:
            res = res + [n]*c1[n]
        else:
            if c1[n] != c2[n]:
                res = res + [n]*abs(c1[n]- c2[n])
    return res

nums1 = [4,5,8,8,6,9]
nums2 = [3,4,4,8,8,8,6,9,5,8]
print(solve(nums1, nums2))

इनपुट

[4,5,8,8,6,9], [3,4,4,8,8,8,6,9,5,8]

आउटपुट

[3, 4, 8, 8]
  1. पायथन में दिए गए इंडेक्स के साथ स्ट्रिंग को शफल करने का प्रोग्राम पायथन में दिए गए इंडेक्स के साथ स्ट्रिंग को शफल करने का प्रोग्राम

    मान लीजिए हमारे पास एक स्ट्रिंग s और इंडेक्स की एक सूची ind है, वे समान लंबाई के हैं। स्ट्रिंग s को इस तरह शफल किया जाएगा कि स्थिति i पर मौजूद वर्ण, फाइनल स्ट्रिंग में indices[i] पर चला जाए। हमें फाइनल स्ट्रिंग ढूंढनी है। उदाहरण के लिए, यदि इनपुट s = ktoalak, ind = [0,5,1,6,2,4,3] है, तो आउटपुट kolk

  1. - पायथन में दिए गए मैट्रिक्स का ट्रांसपोज़ खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक (n by n) मैट्रिक्स M है, हमें इसका ट्रांसपोज़ ढूंढना है। जैसा कि हम जानते हैं, मैट्रिक्स का ट्रांसपोज़ पंक्ति और स्तंभ इंडेक्स को स्विच करता है। अधिक औपचारिक रूप से, हर r और c के लिए, matrix[r][c] = matrix[c][r]। उदाहरण के लिए, यदि इनपुट है: 726 372 537 तो आउटपुट होगा:

  1. - पायथन में दी गई शर्तों के साथ पूरे किए जा सकने वाले कार्यों की संख्या खोजने का प्रोग्राम

    मान लीजिए हमारे पास कार्यों की एक सूची और लोगों की एक अन्य सूची है। tasks[i] iवें कार्य को करने के लिए आवश्यक ताकत निर्धारित करता है। और people[i] iवें व्यक्ति की ताकत निर्धारित करता है। अंत में, हमें उन कार्यों की संख्या ढूंढनी है जो पूरे किए जा सकते हैं यदि एक व्यक्ति अधिकतम एक कार्य कर सकता है।