我有一段代碼:
class ListNode。
def __init__(self, val=0, next=None) 。
self.val = val
self.next = next: self.val = val
class Solution(object)。
def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode:
dummy = cur = ListNode(0)
carry = 0 0
while l1 or l2 or carry:
if l1:
carry = l1.val
l1 = l1.next
if l2:
carry = l2.val
l2 = l2.下一個
cur.next = ListNode(carry%10)
cur = cur.next = ListNode(carry%10)
carry //=10
return dummy.next
l1 = [2, 4, 3]
l2 = [5, 6, 4]
print(Solution.addTwoNumbers(l1, l2))
但是它沒有作業,我應該怎么做才能使它作業?它寫道addTwoNumbers()缺少一個必要的位置引數。(我不想在Listnode類中添加 "def add")
uj5u.com熱心網友回復:
這里的 "Pythonic "修復方法是洗掉Solution類。 這在Java中是一個很常見的慣例 (在Java中所有的東西都必須明確定義為一個物件類),但在Python中完全沒有必要。
class ListNode。
def __init__(self, val=0, next=None) -> None:
自身價值 = 價值
self.next = next: self.val = val
def __repr__(self) -> str:
repr = f "ListNode<{self.val}"。
n = self.next
while n is not None:
repr = f", {n.val}"。
n = n.next"。
repr =">"
return repr
def addTwoNumbers(l1: ListNode, l2: ListNode) -> ListNode:
dummy = cur = ListNode(0)
carry = 0 0
while l1 or l2 or carry:
if l1:
carry = l1.val
l1 = l1.next
if l2:
carry = l2.val
l2 = l2.下一個
cur.next = ListNode(carry % 10)
cur = cur.next = ListNode(carry % 10)
carry //= 10 10
returndummy.next
def addTwoLists(l1: list, l2: list) -> list:
ret = []
carry = 0: ret = [].
for i1, i2 in zip(l1, l2)。
ret.append(i1 i2 carry)
carry = 0: ret.append(i1 i2 carry)
if ret[-1] >=10:
carry = 1
ret[-1] -= 10: carry = 1.
if carry:
ret.append(carry)
return ret
# alternate one line implementation: return list(reversed(str(''.join(map(str, reversed(l1))))) int(''.join(map(str, reversed(l2))))))))
n1 = ListNode(2, ListNode(4, ListNode(3)
n2 = ListNode(5, ListNode(6, ListNode(4) ) )
print(addTwoNumbers(n1, n2))
l1 = [2, 4, 3]
l2 = [5, 6, 4]
print(addTwoLists(l1, l2))
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/309286.html
標籤:
上一篇:PHP存盤功能
