From 32870070fe1dc4e620bf894e0c237104130df56c Mon Sep 17 00:00:00 2001 From: openset Date: Sat, 6 Apr 2019 12:58:58 +0800 Subject: [PATCH 1/2] Add: Rotate String --- problems/rotate-string/rotate_string.go | 10 +++++++ problems/rotate-string/rotate_string_test.go | 29 ++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/problems/rotate-string/rotate_string.go b/problems/rotate-string/rotate_string.go index 8a0f6d230..cd845cfac 100644 --- a/problems/rotate-string/rotate_string.go +++ b/problems/rotate-string/rotate_string.go @@ -1 +1,11 @@ package rotate_string + +import "strings" + +func rotateString(A string, B string) bool { + if len(A) != len(B) { + return false + } + A = strings.Repeat(A, 2) + return strings.Contains(A, B) +} diff --git a/problems/rotate-string/rotate_string_test.go b/problems/rotate-string/rotate_string_test.go index 8a0f6d230..3a406af99 100644 --- a/problems/rotate-string/rotate_string_test.go +++ b/problems/rotate-string/rotate_string_test.go @@ -1 +1,30 @@ package rotate_string + +import "testing" + +type caseType struct { + A string + B string + expected bool +} + +func TestRotateString(t *testing.T) { + tests := [...]caseType{ + { + A: "abcde", + B: "cdeab", + expected: true, + }, + { + A: "abcde", + B: "abced", + expected: false, + }, + } + for _, tc := range tests { + output := rotateString(tc.A, tc.B) + if output != tc.expected { + t.Fatalf("input: %v %v, output: %v, expected: %v", tc.A, tc.B, output, tc.expected) + } + } +} From 01b6b6ac9a9192e9baeb24019c49a9e5fd3cf3d7 Mon Sep 17 00:00:00 2001 From: openset Date: Sat, 6 Apr 2019 13:12:12 +0800 Subject: [PATCH 2/2] Add: test case --- problems/rotate-string/rotate_string_test.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/problems/rotate-string/rotate_string_test.go b/problems/rotate-string/rotate_string_test.go index 3a406af99..8fe163888 100644 --- a/problems/rotate-string/rotate_string_test.go +++ b/problems/rotate-string/rotate_string_test.go @@ -20,6 +20,11 @@ func TestRotateString(t *testing.T) { B: "abced", expected: false, }, + { + A: "abcde", + B: "abcdef", + expected: false, + }, } for _, tc := range tests { output := rotateString(tc.A, tc.B)