Pythonでリストが交互に増加しているかどうかを確認するプログラム
numsという番号のリストがあるとします。リストが厳密に増加することから始まり、厳密に減少すること、そして厳密に増加することなどを交互に繰り返すかどうかを確認する必要があります。また、リストが厳密に増加しているだけの場合は、有効になります。
したがって、入力がnums =[2、4、8、7、5、1、5、7、2、1]のようである場合、[2,4,8]が増加しているため、出力はTrueになります。 [7,5,1]が減少し、次に[5,7]が増加し、[2,1]が減少しています。
これを解決するには、次の手順に従います-
- nums [1] <=nums [0]の場合、
- Falseを返す
- 0からnumsのサイズの範囲のiの場合は、
- i --1> =0の場合、
- nums[i]がnums[i-1]と同じ場合、
- Falseを返す
- nums[i]がnums[i-1]と同じ場合、
- i --1> =0の場合、
- Trueを返す
例
理解を深めるために、次の実装を見てみましょう-
def solve(nums): if nums[1] <= nums[0]: return False for i in range(len(nums)): if i - 1 >= 0: if nums[i] == nums[i - 1]: return False return True nums = [2, 4, 8, 7, 5, 1, 5, 7, 2, 1] print(solve(nums))を返します
入力
[2, 4, 8, 7, 5, 1, 5, 7, 2, 1]
出力
True
-
与えられたブロックのリストがPythonでx=y行に対して対称であるかどうかをチェックするプログラム
numsという番号のリストがあるとします。そして、それは正方形のブロックの高さを表しています。形状がy=xの線上で対称であるかどうかを確認する必要があります。 したがって、入力がnums =[7、5、3、2、2、1、1]のような場合、出力はTrueになります これを解決するには、次の手順に従います。 i:=0 j:=numsのサイズ-1 i <=jの場合、do h:=nums [j] i
-
与えられたグラフがPythonで2部グラフであるかどうかをチェックするプログラム
無向グラフが1つあるとすると、グラフが2部グラフであるかどうかを確認する必要があります。グラフのすべてのエッジ{u、v}がAに1つのノードuを持ち、Bに別のノードvを持つように、グラフのノードを2つのセットAとBに分割できる場合、グラフは2部グラフであることがわかります。 したがって、入力が次のような場合 次に、出力はTrueになり、[0,4]はセットAにあり、[1,2,3]はセットBにあり、すべてのエッジはAからAまたはBからBではなく、AからBまたはBからAになります。 。 これを解決するために、次の手順に従います- 関数dfs()を定義します。これはソースを取ります