C# Solution | Time: O(s), Memory: O(s) | Easy to understand, Brute force
C#\npublic class Solution {\n    public int MinDeletionSize(string[] strs) {\n        HashSet<int> deleted = new HashSet<int>();\n        int wordIndex = 1;\n  
```C#\npublic class Solution {\n    public int MinDeletionSize(string[] strs) {\n        HashSet<int> deleted = new HashSet<int>();\n        int wordIndex = 1;\n        while (wordIndex < strs.Length) {\n            int letterIndex = 0;\n            while (letterIndex < strs[wordIndex].Length && (deleted.Contains(letterIndex) || strs[wordIndex - 1][letterIndex] == strs[wordIndex][letterIndex])) letterIndex++;\n            if (letterIndex < strs[wordIndex].Length && strs[wordIndex - 1][letterIndex] > strs[wordIndex][letterIndex]) {\n                deleted.Add(letterIndex);\n                wordIndex = 0;\n            }\n            \n            wordIndex++;\n        }\n        \n        return deleted.Count;\n    }\n}\n```
[]