Pythonの4つのリストからターゲットよりも少ない合計を生成できる一意の4つのインデックスの数を見つけるプログラム
番号A、B、C、およびDの4つのリストがあり、別の番号ターゲットもあるとします。 A [i] + B [j] + C [k] + D[l]≤targetとなるような異なる一意のインデックスi、j、k、lの数を見つける必要があります。
したがって、入力がA =[3、2] B =[5、3] C =[1] D =[2、3] target =9の場合、次のように出力は3になります。組み合わせ:[3、3、1、2] [3、3、1、2] [2、3、1、3]
これを解決するには、次の手順に従います。
- temp_list:=新しいリスト
- 0からAのサイズの範囲のiについては、
- 0からBのサイズの範囲のjについては、
- temp_listの最後に(A [i] + B [j])を挿入します
- 0からBのサイズの範囲のjについては、
- リストtemp_listを並べ替える
- ans:=0
- 0からCのサイズの範囲のiについては、
- 0からDのサイズの範囲のjについては、
- sum_cd:=C [i] + D [j]
- sum_ab:=target --sum_cd
- ans:=ans+合計が<=sum_ab であるtemp_list内の要素の数
- 0からDのサイズの範囲のjについては、
- 回答を返す
理解を深めるために、次の実装を見てみましょう。
例
from bisect import bisect_right class Solution: def solve(self, A, B, C, D, target): temp_list = [] for i in range(len(A)): for j in range(len(B)): temp_list.append(A[i] + B[j]) temp_list.sort() ans = 0 for i in range(len(C)): for j in range(len(D)): sum_cd = C[i] + D[j] sum_ab = target - sum_cd ans += bisect_right(temp_list, sum_ab) return ans ob = Solution() A = [3, 2] B = [5, 3] C = [1] D = [2, 3] target = 9 print(ob.solve(A, B, C, D, target))
入力
[3, 2], [5, 3], [1], [2, 3], 9
出力
3
-
作成できる文字列の数を見つけるプログラム。ここで、「a」は「a」または「b」であり、「b」はPythonでは「b」のままです。
「a」と「b」だけの文字列sがあるとします。 「a」は「a」のままにすることも「b」に変えることもできますが、「b」を変更することはできません。作成できる一意の文字列の数を見つける必要があります。 したがって、入力がs =baabのような場合、これらの文字列を作成できるため、出力は4になります-[baab、 babb、 bbab、 bbbb] これを解決するには、次の手順に従います- counts:=sの「a」の頻度 2^カウントを返す 理解を深めるために、次の実装を見てみましょう- 例 class Solution: def solve(self, s
-
Pythonプログラムで数の偶数因子の合計を見つける
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −数値が与えられているので、数値のすべての偶数因子の合計を表示する必要があります。 アプローチ 数値が奇数かどうかを確認し、偶数の因子がないため、0を返します。 数が偶数の場合、計算を実行します。 20を除く他のすべての項は、偶数の因数の合計を生成するために乗算されます。 偶数因子のすべての奇数を削除するために、1である20を無視します。このステップの後、偶数因子のみを取得しました。 2は私たちが利用できる唯一の素数であることに注意してください。 次に、以下の実装を見てみましょう- 例 # math