(base、number)のペアを含む配列内の一致の数を見つけるPythonプログラム
(x、y)の形式でいくつかの異なるペアが与えられたとします。ここで、xは数値の底を示し、yは数値自体を示します。リストには、同じ意味のペアがあります。指定された数のペアの一致数を確認する必要があります。指定されたペアは冗長である可能性があり、無効なベース番号の組み合わせを含む可能性もあります。
したがって、入力がnum_inputs =2、input_arr =[(10、15)、(8、17)]のような場合、出力は1になります。
変数num_inputsは入力の数を指定し、配列input_arrは数のペアをリストします。ここで、2つのペアを見ると、基数10(10進数)の15は、基数8(8進数)の17と同じです。したがって、一致するものが1つあり、出力値1を返します。
これを解決するには、次の手順に従います-
-
arr_len:=input_arrのサイズ
-
temp_dict:=整数値を含む新しいマップ
-
0からnum_inputsの範囲のiの場合、実行
-
num_base:=input_arrのペアiの最初の数の文字列表現
-
num_val:=input_arrのペアiの2番目の数の文字列表現
-
temp_dict [整数表現(num_val、整数表現(num_base))]:=temp_dict [整数表現(num_val、整数表現(num_base))] + 1
-
- cnt:=0
- temp_dictのすべての値のリストにある値ごとに、
- を実行します。
- cnt:=cnt + value *フロア値((value-1)/ 2)
- return cnt
例
理解を深めるために、次の実装を見てみましょう-
from collections import defaultdict def solve(num_inputs, input_arr): arr_len = len(input_arr) temp_dict = defaultdict(int) for i in range(num_inputs): num_base, num_val = str(input_arr[i][0]), str(input_arr[i][1]) temp_dict[int(num_val, int(num_base))] += 1 cnt = 0 for value in temp_dict.values(): cnt += value*(value - 1)//2 return cnt print(solve(2, [(10, 15), (8, 17)]))
入力
2, [(10, 15), (8, 17)]
出力
1
-
配列内の最大の要素を見つけるPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −配列が与えられたので、配列の最大要素を計算する必要があります。 ここでは、ループ全体をトラバースして最大の要素を計算し、要素を取得するブルートフォースアプローチを使用します。 以下の実装を観察できます。 例 # largest function def largest(arr,n): #maximum element max = arr[0] # traverse the whole loop for
-
配列の合計を見つけるPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 入力として配列が与えられた場合、与えられた配列の合計を計算する必要があります。 ここでは、ブルートフォースアプローチに従うことができます。つまり、リストをトラバースし、各要素を空の合計変数に追加します。最後に、合計の値を表示します。 以下で説明するように、組み込みの合計関数を使用して別のアプローチを実行することもできます。 例 # main arr = [1,2,3,4,5] ans = sum(arr,n) print ('Sum of the array is '