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中的每一列,執行:
- 如果該列已經排序,則將0插入B
- 否則,將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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP