Pythonで2つの数値を追加する
これを解決するために、次の手順に従います
- 2つのリストl1とl2を取ります。ヘッドと温度をnullとして初期化します
- c:=0
- l1とl2はどちらも空でないリストです
- l1が空でない場合は、:=0を設定し、そうでない場合は:=l1.val を設定します。
- l2が空でない場合は、b:=0に設定します。それ以外の場合は、b:=l2.val を設定します。
- n:=a + b + c
- n> 9の場合、c:=1、それ以外の場合は0
- node:=値nmod10で新しいノードを作成します
- ヘッドがnullの場合
-
head:=nodeおよびtemp:=node
-
- それ以外の場合
- head.next:=ノード、およびhead:=ノード
- l1:=l1が存在する場合、l1の次のノード
- l2:=l2が存在する場合、l2の次のノード
- cがゼロ以外の場合、
- node:=値1の新しいノード、headの次:=node
- リターン温度
理解を深めるために、次の実装を見てみましょう
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]
-
2つの数の最大公約数のためのPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 − 2つの整数が与えられているので、2つの数値の最大公約数を表示する必要があります ここでは、入力として受け取る2つの数値の最小値を計算しています。各値を1から計算された最小値まで除算することによって計算されて除数を計算するループ 条件が真であると評価されるたびに、カウンターは1ずつ増加します。 それでは、以下の実装の概念を見てみましょう- 例 a = 5 b = 45 count = 0 for i in range(1, min(a, b)+1): if a%i==0 an
-
2つの数値を追加するPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 2つの大きな数が与えられ、それらを追加して出力を表示する必要があります。 ブルートフォースアプローチでは、オペランド間に「+」演算子を使用するか、2つの数値を反復可能に格納して、Python標準ライブラリで使用可能な組み込みのsum関数を使用できます。 このアプローチでは、計算が10進数で直接行われるため、時間計算量が増加します。 次に、10進数のビットを処理する別のアプローチについて説明します。 ここでは、合計とキャリーを計算する加算器の概念を使用します。 それでは、実装を見