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

Pythonで並べ替える列を削除する


N個の小文字の文字列の配列があり、配列名がAで、すべての文字列が同じ長さであるとします。これで、削除インデックスの任意のセットを選択でき、文字列ごとに、それらのインデックスのすべての文字を削除できます。

例として、["abcdef"、 "uvwxyz"]のような配列Aがあり、削除インデックスが{0、2、3}の場合、削除後の最終的な配列は["bef"、 "vyz"]、 Aの残りの列は、["b"、 "v"]、["e"、 "y"]、および["f"、"z"]です。

削除後のように削除インデックスDのセットを選択したとすると、Aの残りの各列は降順ではないソート順になります。 Dの長さの可能な最小値を見つける必要があります。

したがって、入力が["cba"、 "daf​​"、 "ghi"]の場合、出力は1になります。これは、D ={1}を選択した後、各列["c"、 "d" 、"g"]と["a"、 "f"、"i"]は降順ではありません。また、D ={}を選択した場合、列["b"、 "a"、"h"]は降順ではありません。

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

  • A =配列から文字列を取得して行列を作成し、文字を別の列に分割します
  • B=新しい空のリスト
  • Aの列については、
    • colがすでに並べ替えられている場合は、Bに0を挿入します
    • それ以外の場合は、1をBに挿入します
  • Bのすべての要素の合計を返す

理解を深めるために、次の実装を見てみましょう-

class Solution:
   def minDeletionSize(self, A):
      return sum([1-(sorted(col)==list(col)) for col in zip(*A)])
ob = Solution()
print(ob.minDeletionSize(["cba","daf","ghi"]))

入力

["cba","daf","ghi"]

出力

1

  1. Pythonでインドの旗を作るプログラム

    グラフを描画するPythonのライブラリには、グラフを提供するだけでなく、フラグなどの他の図を柔軟に描画できる非常に広範な機能があります。その意味で、これらのモジュールには芸術的なタッチがあります。この記事では、ライブラリnumpyとmatplotlibを使用してインドの旗を描く方法を説明します。 アプローチ 同じ幅の長方形を3つ作成し、適切な色と境界線で描画します。 pyplot関数を使用して、中央の長方形の中央にAshokChakraの円を描きます。 numpyとmatplotlibを使用して、AshokChakra内に24本の線を描画します。 上記のすべての図では

  2. Pythonを使用してファイルを削除するにはどうすればよいですか?

    osモジュールの関数を含む単一のファイルまたは単一の空のフォルダーを削除できます。たとえば、ファイルmy_file.txtを削除する場合は、 >>> import os >>> os.remove('my_file.txt') os.removeの引数は、絶対パスまたは相対パスである必要があります。