LeetCode 944 刪列造序

2021-09-19 14:55:32 字數 2106 閱讀 4755

給定由n個小寫字母字串組成的陣列a,其中每個字串長度相等。

選取乙個刪除索引序列,對於a中的每個字串,刪除對應每個索引處的字元。 所餘下的字串行從上往下讀形成列。

比如,有a = ["abcdef", "uvwxyz"],刪除索引序列,刪除後a["bef", "vyz"]a的列分別為["b","v"], ["e","y"], ["f","z"]。(形式上,第 n 列為[a[0][n], a[1][n], ..., a[a.length-1][n]])。

假設,我們選擇了一組刪除索引d,那麼在執行刪除操作之後,a中所剩餘的每一列都必須是非降序排列的,然後請你返回d.length的最小可能值。

示例 1:

輸入:["cba", "daf", "ghi"]

輸出:1

解釋:當選擇 d = ,刪除後 a 的列為:["c","d","g"] 和 ["a","f","i"],均為非降序排列。

若選擇 d = {},那麼 a 的列 ["b","a","h"] 就不是非降序排列了。

示例 2:

輸入:["a", "b"]

輸出:0

解釋:d = {}

示例 3:

輸入:["zyx", "wvu", "tsr"]

輸出:3

解釋:d =

1 <= a.length <= 1001 <= a[i].length <= 1000

題目意思就是每一列中有多少個不是按照字典序排序的

兩個for迴圈就行了

class solution 

return ans;}}

;

函式zip()

zip()函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表。如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同,利用*號操作符,可以將元組解壓為列表。

>>

> a =[1

,2,3

]>>

> b =[4

,5,6

]>>

> c =[7

,8,9

,10]>>

> zipped =

zip(a, b)

>>

> zipped[(

1,4)

,(2,

5),(

3,6)

]>>

>

zip(a, c)[(

1,7)

,(2,

8),(

3,9)

]>>

>

zip(

*zipped)[(

1,2,

3),(

4,5,

6)]

所以這題就把給的陣列解壓成乙個個列表,然後和排列後的列表對比就可以了

class

solution

(object):

defmindeletionsize

(self, a)

:"""

:type a: list[str]

:rtype: int

"""ans =

0for i in

zip(

*a):

iflist

(i)!=

sorted

(i):

ans +=

1return ans

LeetCode 944 刪列造序

題目描述 給定由 n 個小寫字母字串組成的陣列 a,其中每個字串長度相等。刪除 操作的定義是 選出一組要刪掉的列,刪去 a 中對應列中的所有字元,形式上,第 n 列為 a 0 n a 1 n a a.length 1 n 比如,有 a abcdef uvwxyz 要刪掉的列為 刪除後 a 為 bef...

LeetCode 944 刪列造序

給你由 n 個小寫字母字串組成的陣列 strs,其中每個字串長度相等。這些字串可以每個一行,排成乙個網格。例如,strs abc bce cae 可以排列為 abcbce cae你需要找出並刪除 不是按字典序公升序排列的列。在上面的例子 下標從 0 開始 中,列 0 a b c 和列 2 c e e...

944 刪列造序

給你由n個小寫字母字串組成的陣列strs,其中每個字串長度相等。這些字串可以每個一行,排成乙個網格。例如,strs abc bce cae 可以排列為 abc bcecae你需要找出並刪除不是按字典序公升序排列的列。在上面的例子 下標從 0 開始 中,列 0 a b c 和列 2 c e e 都是按...