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

पायथन में सूची के सभी जोड़ों के संयोजन का योग निकालने का प्रोग्राम

संख्याओं की एक सूची nums दी गई है। हमें सूची में प्रत्येक जोड़ी के संयोजन (concatenation) का योग निकालना है। यहां जोड़ी (i, j) और (j, i) को अलग-अलग माना जाता है।

उदाहरण

इनपुट: nums = [5, 3]

संयोजन:

  • 5 + 5 = 55
  • 5 + 3 = 53
  • 3 + 5 = 35
  • 3 + 3 = 33

योग = 55 + 53 + 35 + 33 = 176

एल्गोरिदम

  1. एक मेमोइज़ेशन डिक्शनरी memo बनाएं ताकि प्रत्येक अद्वितीय संख्या के लिए संयोजन योग कैश किया जा सके।
  2. सूची के सभी तत्वों का योग total_sum में संग्रहीत करें (0 के विशेष मामले के लिए)।
  3. प्रत्येक तत्व num के लिए:
    • यदि num == 0, तो total_sum जोड़ें (क्योंकि 0 के साथ संयोजन केवल दूसरा नंबर देता है)।
    • अन्यथा, यदि num मेमो में है, तो कैश्ड मान जोड़ें।
    • अन्यथा, सभी तत्वों के साथ num के संयोजन का योग निकालें, मेमो में स्टोर करें, और कुल में जोड़ें।
  4. कुल योग वापस करें।

पायथन कार्यान्वयन

class Solution:
    def solve(self, nums):
        memo = {}
        total_sum = sum(nums)
        n = len(nums)
        ans = 0
        
        for num in nums:
            if num == 0:
                ans += total_sum
            else:
                if num in memo:
                    ans += memo[num]
                else:
                    concat_sum = 0
                    for other in nums:
                        concat_sum += int(str(num) + str(other))
                    memo[num] = concat_sum
                    ans += concat_sum
        return ans

# परीक्षण
ob = Solution()
nums = [5, 3]
print(ob.solve(nums))  # आउटपुट: 176

अनुकूलित दृष्टिकोण (गणितीय)

संयोजन a concat b को a * 10^len(b) + b के रूप में लिखा जा सकता है। इसलिए कुल योग:

sum_{i,j} (nums[i] * 10^len(nums[j]) + nums[j])
= sum_i nums[i] * sum_j 10^len(nums[j]) + n * sum_j nums[j]

यह O(n) समय में गणना योग्य है।

समय जटिलता

  • दिए गए कार्यान्वयन: O(n² × d) जहां d औसत अंक संख्या है।
  • अनुकूलित: O(n × d)।
  1. पायथन प्रोग्राम: लिस्ट का संचयी योग ज्ञात करें पायथन प्रोग्राम: लिस्ट का संचयी योग ज्ञात करें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक लिस्ट दी गई है, हमें संचयी योग के साथ एक लिस्ट बनानी है। उदाहरण # संचयी योग def Cumulative(l): new = [] cumsum = 0 for element in l: cumsum += element new.append(cumsum) return new # ड्राइवर

  1. पायथन प्रोग्राम: लिस्ट में एलिमेंट्स का योग ढूंढें पायथन प्रोग्राम: लिस्ट में एलिमेंट्स का योग ढूंढें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट इनपुट के रूप में एक लिस्ट दिए जाने पर, हमें दी गई लिस्ट का योग निकालने की आवश्यकता है। यहां हमारे पास दो दृष्टिकोण हैं: बिल्ट-इन फंक्शन का उपयोग करना और ब्रूट-फोर्स दृष्टिकोण का उपयोग

  1. पायथन प्रोग्राम: लिस्ट में सभी पेयर्स के बीच एब्सोल्यूट डिफरेंस का योग ढूंढें पायथन प्रोग्राम: लिस्ट में सभी पेयर्स के बीच एब्सोल्यूट डिफरेंस का योग ढूंढें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट एक लिस्ट इनपुट दिए जाने पर, हमें लिस्ट में सभी पेयर्स के बीच एब्सोल्यूट डिफरेंस का योग ढूंढने की आवश्यकता है। Enumerate() मेथड एक इटरेबल में काउंटर जोड़ता है और इसे एन्यूमरेट ऑब्जेक्