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

Pythonの配列のサイズkのすべてのセグメントにキーが存在するかどうかを確認します


N個の要素を持つ配列Aがあり、別の値pとセグメントサイズkがあるとします。キーpがAのサイズkのすべてのセグメントに存在するかどうかを確認する必要があります。

したがって、入力がA =[4、6、3、5、10、4、2、8、4、12、13、4]、p =4、k =3の場合、出力はTrue<になります。 / P>

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

  • i:=0
  • i
  • j:=0
  • j
  • arr [j + i]がpと同じ場合、
    • 休憩
  • j:=j + 1
  • jがkと同じ場合、
    • Falseを返す
  • i:=i + k
  • iがnと同じ場合、
    • Trueを返す
  • j:=i --k
  • j
  • arr [j]がpと同じ場合、
    • 休憩
  • j:=j + 1
  • jがnと同じ場合、
    • Falseを返す
  • Trueを返す
  • 理解を深めるために、次の実装を見てみましょう-

    def key_in_segment_k(arr, p, k, n) :
       i = 0
       while i < n :
          j = 0
          while j < k :
             if arr[j + i] == p :
                break
             j += 1
          if j == k :
             return False
          i = i + k
       if i == n :
          return True
       j = i - k
       while j < n :
          if arr[j] == p :
             break
          j += 1
       if j == n :
          return False
       return True
    arr = [4, 6, 3, 5, 10, 4, 2, 8, 4, 12, 13, 4]
    p, k = 4, 3
    n = len(arr)
    print(key_in_segment_k(arr, p, k, n))

    入力

    [4, 6, 3, 5, 10, 4, 2, 8, 4, 12, 13, 4]

    出力

    True

    1. Pythonですべてのペアが適切である特定の配列の任意のシーケンスの最大サイズを見つけるプログラム

      サイズnのシーケンス番号があるとします。すべてのペア(p、q)が適切なペアであるnumsのサブシーケンスの最大サイズを見つける必要がありますか?ペイトは、次の条件の少なくとも1つを保持している場合にのみ、適切なペアであると言われます。1.pの個別の素数除数の数のパリティがbのパリティと等しい。たとえば、値18には、2と3の2つの異なる素数の約数があります。2。pのすべての正の約数の合計のパリティはqと同じです。 したがって、入力がnums =[2,3,6,8]の場合、出力は3になります。 これを解決するには、次の手順に従います- n:=numsのサイズ 3つの空のリストcnt、

    2. 配列がPythonで二分探索木の順序を表しているかどうかを確認します

      numsと呼ばれる数値の配列があるとします。配列が二分探索木の要素を順番にトラバーサルする順序で保持しているかどうかを確認する必要があります。 したがって、入力がnums =[5、8、15、18、20、26、39]のような場合、これは順序どおりのトラバーサルであるため、出力はTrueになります これを解決するには、次の手順に従います- size:=numsのサイズ サイズが0または1の場合、 Trueを返す iの範囲が1からサイズ-1の場合、実行します nums [i]の場合、 Falseを返す Trueを返す 理解を深めるために、次の実装を見てみましょう-