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

पायथन में दो नंबर जोड़ें


मान लीजिए कि हमने दो गैर-रिक्त लिंक्ड सूचियां दी हैं। ये दो सूचियाँ दो गैर-ऋणात्मक पूर्णांक संख्याओं का प्रतिनिधित्व कर रही हैं। अंकों को उल्टे क्रम में संग्रहीत किया जाता है। उनके प्रत्येक नोड में केवल एक अंक होता है। दो नंबर जोड़ें और परिणाम को एक लिंक्ड सूची के रूप में वापस कर दें। हम यह मान रहे हैं कि दो संख्याओं में 0 को छोड़कर कोई भी अग्रणी शून्य नहीं है। इसलिए यदि संख्याएं 120 + 230 हैं, तो लिंक की गई सूचियाँ [0 → 2 → 1] + [0 → 3 → 2] =[0 → 5 → 3] =350 होंगी।

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

  • दो सूचियां लें l1 और l2. सिर और तापमान को शून्य के रूप में प्रारंभ करें
  • सी :=0
  • जबकि l1 और l2 दोनों गैर-रिक्त सूचियां हैं
    • यदि l1 खाली नहीं है, तो एक :=0 सेट करें, अन्यथा एक सेट करें:=l1.val
    • यदि l2 खाली नहीं है, तो b :=0 सेट करें, अन्यथा b :=l2.val सेट करें
    • n :=a + b + c
    • यदि n> 9, तो c :=1 अन्यथा 0
    • नोड:=मान n मॉड 10 के साथ एक नया नोड बनाएं
    • अगर सिर खाली है
      • सिर:=नोड और अस्थायी:=नोड

    • अन्यथा
      • head.next:=नोड, और हेड:=नोड
    • l1 :=l1 का अगला नोड, यदि l1 मौजूद है
    • l2 :=l2 का अगला नोड, यदि l2 मौजूद है
  • यदि c गैर-शून्य है, तो
    • नोड:=मान 1 के साथ नया नोड:सिर के आगे:=नोड
  • वापसी का तापमान

उदाहरण (पायथन)

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

class ListNode:
   def __init__(self, data, next = None):
      self.val = data
      self.next = next
def make_list(elements):
   head = ListNode(elements[0])
   for element in elements[1:]:
      ptr = head
      while ptr.next:
         ptr = ptr.next
      ptr.next = ListNode(element)
   return head
def print_list(head):
   ptr = head
   print('[', end = "")
   while ptr:
      print(ptr.val, end = ", ")
      ptr = ptr.next
   print(']')
class Solution:
   def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
      head = None
      temp = None
      c = 0
      while l1 or l2:
         if not l1:
            a= 0
         else:
            a = l1.val
         if not l2:
            b=0
         else:
            b = l2.val
         n = a +b + c
         c = 1 if n>9 else 0
         node = ListNode(n%10)
         if not head:
            head = node
            temp = node
         else:
            head.next = node
            head = node
         l1 = l1.next if l1 else None
         l2 = l2.next if l2 else None
      if c:
         node = ListNode(1)
         head.next = node
      return temp
ob1 = Solution()
l1 = make_list([0,2,1])
l2 = make_list([0,3,2])
print_list(ob1.addTwoNumbers(l1, l2))

इनपुट

[0,2,1]
[0,3,2]

आउटपुट

[0,5,3]

  1. दो संख्याओं के सामान्य भाजक के लिए पायथन कार्यक्रम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें दो पूर्णांक दिए गए हैं, हमें दो संख्याओं के उभयनिष्ठ भाजक प्रदर्शित करने की आवश्यकता है यहां हम इनपुट के रूप में ली जाने वाली न्यूनतम दो संख्याओं की गणना कर रहे हैं। प्रत्येक मान को 1 से न्यूनतम गणना में विभाजित

  1. दो नंबर जोड़ने के लिए पायथन कार्यक्रम

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

  1. पायथन का उपयोग करके दो मैट्रिक्स कैसे जोड़ें?

    अजगर में 2 मैट्रिक्स जोड़ने का सबसे आसान तरीका है कि उन पर लूप करें और तत्वों को एक-एक करके जोड़ें। उदाहरण के लिए, X = [[1,2,3], [4,5,6], [7,8,9]] Y = [[9,8,7], [6,5,4], [3,2,1]] result = [[0,0,0], [0,0,0], [0,0,0]] for i in range(len(X)):    for j in range(len(X[0])):     &nbs