09 Sept 2026Go / Python / TypeScriptEasy

Delete Columns to Make Sorted

Count string-grid columns that are not sorted from top to bottom.

Inspect each column and count it once as soon as any adjacent row pair is descending.

complexity

O(rows * columns) time and O(1) space.

solution files

  • Go delete-columns-to-make-sorted/solution.go
  • Python delete-columns-to-make-sorted/solution.py
  • TypeScript delete-columns-to-make-sorted/solution.ts

Solution files

Godelete-columns-to-make-sorted/solution.go
package main

func minDeletionSize(strs []string) int {
	deleted := 0
	for column := range strs[0] {
		for row := 1; row < len(strs); row++ {
			if strs[row][column] < strs[row-1][column] {
				deleted++
				break
			}
		}
	}
	return deleted
}
Pythondelete-columns-to-make-sorted/solution.py
class Solution:
    def minDeletionSize(self, strs: list[str]) -> int:
        return sum(any(strs[row][column] < strs[row - class="syntax-number">1][column] for row in range(class="syntax-number">1, len(strs))) for column in range(len(strs[class="syntax-number">0])))
TypeScriptdelete-columns-to-make-sorted/solution.ts
function minDeletionSize(strs: string[]): number {
  let deleted = class="syntax-number">0;
  for (let column = class="syntax-number">0; column < strs[class="syntax-number">0].length; column += class="syntax-number">1) for (let row = class="syntax-number">1; row < strs.length; row += class="syntax-number">1) if (strs[row][column] < strs[row - class="syntax-number">1][column]) { deleted += class="syntax-number">1; break; }
  return deleted;
}