From 49eeabe0f1f92ccb06c12f07efe0a1536332eebc Mon Sep 17 00:00:00 2001 From: Openset Date: Sun, 27 Jan 2019 16:07:17 +0800 Subject: [PATCH] Add: Delete Columns to Make Sorted --- .../delete_columns_to_make_sorted.go | 13 ++++++++ .../delete_columns_to_make_sorted_test.go | 30 +++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/problems/delete-columns-to-make-sorted/delete_columns_to_make_sorted.go b/problems/delete-columns-to-make-sorted/delete_columns_to_make_sorted.go index d217c263f..74d46d61e 100644 --- a/problems/delete-columns-to-make-sorted/delete_columns_to_make_sorted.go +++ b/problems/delete-columns-to-make-sorted/delete_columns_to_make_sorted.go @@ -1 +1,14 @@ package delete_columns_to_make_sorted + +func minDeletionSize(A []string) int { + ans := 0 + for i := 0; i < len(A[0]); i++ { + for j, str := range A[1:] { + if str[i] < A[j][i] { + ans++ + break + } + } + } + return ans +} diff --git a/problems/delete-columns-to-make-sorted/delete_columns_to_make_sorted_test.go b/problems/delete-columns-to-make-sorted/delete_columns_to_make_sorted_test.go index d217c263f..0172ce0ae 100644 --- a/problems/delete-columns-to-make-sorted/delete_columns_to_make_sorted_test.go +++ b/problems/delete-columns-to-make-sorted/delete_columns_to_make_sorted_test.go @@ -1 +1,31 @@ package delete_columns_to_make_sorted + +import "testing" + +type caseType struct { + input []string + expected int +} + +func TestMinDeletionSize(t *testing.T) { + tests := [...]caseType{ + { + input: []string{"cba", "daf", "ghi"}, + expected: 1, + }, + { + input: []string{"a", "b"}, + expected: 0, + }, + { + input: []string{"zyx", "wvu", "tsr"}, + expected: 3, + }, + } + for _, tc := range tests { + output := minDeletionSize(tc.input) + if output != tc.expected { + t.Fatalf("input: %v, output: %v, expected: %v", tc.input, output, tc.expected) + } + } +}