题目浅析

  • 想查看原题可以点击题目链接

  • 简单地说,就是给一个字符串数组,每个字符串长度相等,排在一起看每个列是否为非严格递增,如果不是,就要删除,统计删除的个数。

思路分享

代码解答(强烈建议自行解答后再看)

  • 参考题解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution:
def minDeletionSize(self, strs: List[str]) -> int:
ans = 0
for col in zip(*strs):
if any(x > y for x, y in pairwise(col)):
ans += 1
return ans

n = len(strs[0])
is_up = [True]*n
rec = ['a']*n
for s in strs:
for i in range(n):
if is_up[i] and s[i] >= rec[i]:
rec[i] = s[i]
else:
is_up[i] = False
return is_up.count(False)