From 9baaaf5d97acd0e8bcb2692425468de44293ed1f Mon Sep 17 00:00:00 2001 From: Shuo Date: Thu, 2 Apr 2020 10:06:12 +0800 Subject: [PATCH] Add: Generate a String With Characters That Have Odd Counts --- ...ng_with_characters_that_have_odd_counts.go | 12 +++++++ ...th_characters_that_have_odd_counts_test.go | 35 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 problems/generate-a-string-with-characters-that-have-odd-counts/generate_a_string_with_characters_that_have_odd_counts.go create mode 100644 problems/generate-a-string-with-characters-that-have-odd-counts/generate_a_string_with_characters_that_have_odd_counts_test.go diff --git a/problems/generate-a-string-with-characters-that-have-odd-counts/generate_a_string_with_characters_that_have_odd_counts.go b/problems/generate-a-string-with-characters-that-have-odd-counts/generate_a_string_with_characters_that_have_odd_counts.go new file mode 100644 index 000000000..707bfb46d --- /dev/null +++ b/problems/generate-a-string-with-characters-that-have-odd-counts/generate_a_string_with_characters_that_have_odd_counts.go @@ -0,0 +1,12 @@ +package problem1374 + +func generateTheString(n int) string { + b := make([]byte, n) + for i := 0; i < n; i++ { + b[i] = 'x' + } + if n%2 == 0 { + b[n-1] = 'y' + } + return string(b) +} diff --git a/problems/generate-a-string-with-characters-that-have-odd-counts/generate_a_string_with_characters_that_have_odd_counts_test.go b/problems/generate-a-string-with-characters-that-have-odd-counts/generate_a_string_with_characters_that_have_odd_counts_test.go new file mode 100644 index 000000000..3c121cfee --- /dev/null +++ b/problems/generate-a-string-with-characters-that-have-odd-counts/generate_a_string_with_characters_that_have_odd_counts_test.go @@ -0,0 +1,35 @@ +package problem1374 + +import "testing" + +type testType struct { + in int + want string +} + +func TestGenerateTheString(t *testing.T) { + tests := [...]testType{ + { + in: 4, + want: "xxxy", + }, + { + in: 2, + want: "xy", + }, + { + in: 7, + want: "xxxxxxx", + }, + { + in: 30, + want: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxy", + }, + } + for _, tt := range tests { + got := generateTheString(tt.in) + if got != tt.want { + t.Fatalf("in: %v, got: %v, want: %v", tt.in, got, tt.want) + } + } +}