C++ Straightforward Solution, 3 Steps: Add, Judge, Remove
\n\nclass Solution {\npublic:\n    int minDeletionSize(vector<string>& A) {\n        int res = 0;\n        int row = A.size();\n        if(row == 0) return res;
\n```\nclass Solution {\npublic:\n    int minDeletionSize(vector<string>& A) {\n        int res = 0;\n        int row = A.size();\n        if(row == 0) return res;\n        int col = A[0].size();\n        vector<string> str(row, ""); // store intermediate results\n        for(int j = 0; j < col; j++) {\n            bool flag = true;\n            for(int i = 0; i < row; i ++) // step 1: add cur char\n                str[i] += A[i][j];\n            for(int i = 1; i < row; i ++) // step 2: judge on str\n               if(str[i] < str[i-1]) {\n                   flag = false;\n                   break;\n                }\n            if(!flag)\n                for(int i = 0; i < row; i ++) //step 3:remove the char if false\n                    str[i].pop_back();\n        }\n        res = col - str[0].size();\n        return res;\n    }\n};\n```
[]