1. 程式人生 > >LeetCode 944. 刪除列以使之有序(C、C++、python)

LeetCode 944. 刪除列以使之有序(C、C++、python)

給出由 N 個小寫字母串組成的陣列 A,所有小寫字母串的長度都相同。

現在,我們可以選擇任何一組刪除索引,對於每個字串,我們將刪除這些索引中的所有字元。

舉個例子,如果字串為 "abcdef",且刪除索引是 {0, 2, 3},那麼刪除之後的最終字串為 "bef"

假設我們選擇了一組刪除索引 D,在執行刪除操作之後,A 中剩餘的每一列都是有序的。

形式上,第 c 列為 [A[0][c], A[1][c], ..., A[A.length-1][c]]

返回 D.length

 的最小可能值。

 

示例 1:

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

示例 2:

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

示例 3:

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

 

提示:

1 <= A.length <= 100

1 <= A[i].length <= 1000

C

int minDeletionSize(char** A, int ASize) 
{
    int m=ASize;
    int n=strlen(A[0]);
    int count=0;
    for(int i=0;i<n;i++)
    {
        for(int j=1;j<m;j++)
        {
            if(A[j][i]<A[j-1][i])
            {
                count++;
                break;
            }
        }
    }
    return count;
}

C++

class Solution {
public:
    int minDeletionSize(vector<string>& A) 
    {
        int m=A.size();
        int n=A[0].size();
        int count=0;
        for(int i=0;i<n;i++)
        {
            for(int j=1;j<m;j++)
            {
                if(A[j][i]<A[j-1][i])
                {
                    count++;
                    break;
                }
            }
        }
        return count;
    }
};

python

class Solution:
    def minDeletionSize(self, A):
        """
        :type A: List[str]
        :rtype: int
        """
        m=len(A)
        n=len(A[0])
        count=0
        for i in range(n):
            for j in range(1,m):
                if A[j][i]<A[j-1][i]:
                    count+=1
                    break
        return count