Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで与えられた方程式a+b=cから欠落している値を見つけます


次の形式の方程式が1つあるとします。a+b=c、ここでa、b、またはcのいずれかの項が欠落しています。足りないものを見つけなければなりません。

つまり、入力が次のような場合は? + 4 =9の場合、出力は5になります

これを解決するには、次の手順に従います-

  • 文字列からすべての空白スペースを削除し、(+および=をコンマ'、')に変更します

  • elements:=文字列をコンマで区切って分割した要素のリスト

  • idx:=0

  • 0から要素のサイズまでの範囲のiについては、次のようにします

    • elements [i]が数値でない場合、

      • idx:=i

      • ループから出てきます

  • 最後の要素が欠落している場合は、

    • 最初の要素+2番目の要素を返す

  • それ以外の場合、2番目の要素が欠落している場合は、

    • 最後の要素を返す-最初の要素

  • それ以外の場合、最初の要素が欠落していると、

    • 最後の要素を返す-2番目の要素

理解を深めるために、次の実装を見てみましょう-

def find_missing(string):
   string = string.strip().replace(' ', '')
   string = string.replace('=',',')
   string = string.replace('+',',')
   elements = string.split(',')
   idx = 0
   for i in range(len(elements)):
      if not elements[i].isnumeric():
         idx = i
         break
   if idx == 2:
      return int(elements[0]) + int(elements[1])
   elif idx == 1:
      return int(elements[2]) - int(elements[0])
   elif idx == 0:
      return int(elements[2]) - int(elements[1])

print(find_missing('6 + 8 = ?'))
print(find_missing('? + 8 = 20'))
print(find_missing('5 + ? = 15'))
>

入力

'6 + 8 = ?'
'? + 8 = 20'
'5 + ? = 15'

出力

14
12
10

  1. Pythonのサブツリーのノード値の合計から最小値を見つけるプログラム

    すべてのノードに1からnまでの番号が付けられたツリーがあるとします。各ノードには整数値が含まれています。ここで、ツリーからエッジを削除する場合、2つのサブツリーのノード値の合計の差を最小限に抑える必要があります。そのようなサブツリー間の最小の違いを見つけて返す必要があります。ツリーはエッジのコレクションとして提供され、ノードの値も提供されます。 したがって、入力がn =6の場合、edge_list =[[1、2]、[1、3]、[2、4]、[3、5]、[3、6]]、values =[15、 25、15、55、15、65]の場合、出力は0になります。 エッジ(1,2)を削除すると、重みの

  2. Pythonで指定されたネストされたリストで最大値のサブリストを検索します

    リストには、その要素として他のリストを含めることができます。この記事では、特定のリストに存在する最大値のサブリストを見つけることに等しいです。 maxとlambdaを使用 max関数とLambda関数を一緒に使用して、最大値を持つサブリストを指定できます。 例 listA = [['Mon', 90], ['Tue', 32], ['Wed', 120]] # Using lambda res = max(listA, key=lambda x: x[1]) # printing output print("Given List:\n