配列にPythonの特定の範囲のすべての要素が含まれているかどうかを確認します
numsという配列があるとします。また、範囲[x、y]を定義する2つの数値xとyがあります。配列に指定された範囲のすべての要素が含まれているかどうかを確認する必要があります。
したがって、入力がnums =[5,8,9,6,3,2,4] x =2 y =6のような場合、すべての要素が[2,3,4,5]あるため、出力はtrueになります。 、6]。
これを解決するには、次の手順に従います-
- temp_range:=y-x
- 0からnumsのサイズの範囲のiの場合は、
- if | nums [i] |>=xおよび|nums[i] | <=y、次に
- z:=| nums [i] | -x
- nums [z]> 0の場合、
- nums [z]:=-nums [z]
- if | nums [i] |>=xおよび|nums[i] | <=y、次に
- cnt:=0
- 0からtemp_rangeの範囲のiの場合は、
- i> =numsのサイズの場合、
- ループから抜け出す
- nums [i]> 0の場合、
- Falseを返す
- それ以外の場合、
- cnt:=cnt + 1
- i> =numsのサイズの場合、
- cntが(temp_range + 1)と同じでない場合、
- Falseを返す
- Trueを返す
理解を深めるために、次の実装を見てみましょう-
例
def solve(nums, x, y) : temp_range = y - x for i in range(0, len(nums)): if abs(nums[i]) >= x and abs(nums[i]) <= y: z = abs(nums[i]) - x if (nums[z] > 0) : nums[z] = nums[z] * -1 cnt = 0 for i in range(0, temp_range + 1): if i >= len(nums): break if nums[i] > 0: return False else: cnt += 1 if cnt != temp_range + 1: return False return True nums = [5,8,9,6,3,2,4] x = 2 y = 6 print(solve(nums, x, y))
入力
[5,8,9,6,3,2,4], 2, 6
出力
True
-
Pythonで指定された配列内のすべての適切なインデックスを検索します
数値の配列Aがあるとすると、この配列のすべてのインデックスを見つけて、配列からi番目の要素を削除した後、その配列が適切な配列になるようにする必要があります。そのことを覚えておく必要があります- 適切な配列とは、他のすべての要素の合計に等しい要素を持つ配列です。 1ベースのインデックスがここで使用されます。 したがって、入力が[10、4、6、2]の場合、出力は[1,4]になり、A [1]を削除すると、配列は[4、6、2]のようになります。 6 =4 + 2なので、良いです。 A [4]を削除すると、配列は[10、4、6]のようになり、10 =4+6のようになります。 これを解決するには、
-
文字列にすべての一意の文字が含まれているかどうかを確認するPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 sring入力が与えられた場合、文字列にすべての一意の文字が含まれているかどうかを確認する必要があります。 アプローチ ブール値の配列を作成します。ここで、インデックスiの変数フラグは、アルファベットの文字iが文字列に含まれているかどうかを示します。 この文字に2回目に遭遇したとき、文字列文字は一意ではなくなったため、すぐにfalseを返すことができます。 文字列の長さがアルファベットに表示される一意の文字数の値を超える場合も、falseを返すことができます。 文