Участник:ArthurSamuelyan/Delete Columns To Make Sorted II

Материал из DISCOPAL
Перейти к: навигация, поиск
class Solution(object):
    def minDeletionSize(self, A):
        """
        :type A: List[str]
        :rtype: int
        """
        delNum = 0
        ASorted = ["" for _ in A]
        while len(A[0]) > 0:
            # Безусловно добавляем следующий столбец
            # из оригинального массива
            for i in range(len(A)):
                ASorted[i] += str(A[i][0])
                A[i] = A[i][1:]
 
            # Проверяем, не ипортился ли порядок в отсортированном
            for j in range(1, len(ASorted)):
                if ASorted[j-1] > ASorted[j]:
                    # И если испортился, выпиливаем новый столбец
                    # и считаем число удалений
                    delNum += 1
                    for i in range(len(ASorted)):
                        ASorted[i] = ASorted[i][:-1]
 
                    break
 
        return delNum