給定由n
個小寫字母字串組成的陣列a
,其中每個字串長度相等。
選取乙個刪除索引序列,對於a
中的每個字串,刪除對應每個索引處的字元。
假設,我們選擇了一組刪除索引d
,那麼在執行刪除操作之後,最終得到的陣列的行中的每個元素都是按字典序排列的。
比如,有a = ["babca","bbazb"]
,刪除索引序列,刪除後
a
為["bc","az"]
。
清楚起見,a[0]
是按字典序排列的(即,a[0][0] <= a[0][1] <= ... <= a[0][a[0].length - 1]
),a[1]
是按字典序排列的(即,a[1][0] <= a[1][1] <= ... <= a[1][a[1].length - 1]
),依此類推。
請你返回d.length
的最小可能值。
def mindeletionsize(a):
n=len(a)
m=len(a[0])
f=[0 for i in range(120)]
maxd=-1
for i in range(0,m):
f[i]=1
for j in range(0,i):###判斷第i個字母前是否都比第i個小
if smaller(j,i,a,n)
print(f[i],f[j],' ',end='')
f[i]=max(f[i],f[j]+1)
print(f[i])
maxd=max(maxd,f[i])
return m-maxd
def smaller(i,j,a,n):
for k in range(n):#將a陣列中每乙個元素中前乙個字母和後乙個字母相比較
if a[k][i]>a[k][j]:#如果前面的字母要大,則返回false
return false
return true
# a=['edcba']
a=['babca','bbazb']
# a=['ghi','def','abc']
index=mindeletionsize(a)
print(index)
944 刪列造序
給你由n個小寫字母字串組成的陣列strs,其中每個字串長度相等。這些字串可以每個一行,排成乙個網格。例如,strs abc bce cae 可以排列為 abc bcecae你需要找出並刪除不是按字典序公升序排列的列。在上面的例子 下標從 0 開始 中,列 0 a b c 和列 2 c e e 都是按...
955 刪列造序 II
給定由n個小寫字母字串組成的陣列a,其中每個字串長度相等。選取乙個刪除索引序列,對於a中的每個字串,刪除對應每個索引處的字元。比如,有a abcdef uvwxyz 刪除索引序列,刪除後a為 bef vyz 假設,我們選擇了一組刪除索引d,那麼在執行刪除操作之後,最終得到的陣列的元素是按字典序 a ...
C Leetcode944 刪列造序
題目 給定由 n 個小寫字母字串組成的陣列 a,其中每個字串長度相等。選取乙個刪除索引序列,對於 a 中的每個字串,刪除對應每個索引處的字元。所餘下的字串行從上往下讀形成列。比如,有 a abcdef uvwxyz 刪除索引序列 刪除後 a 為 bef vyz a 的列分別為 b v e y f z...