From a6988017d08007fafd53f0c6ff5f1efd97fef199 Mon Sep 17 00:00:00 2001 From: VicRen Date: Tue, 22 Dec 2020 09:37:25 +0800 Subject: [PATCH] 20201222 --- 20201222/main.go | 40 +++++++++++++++++++++++++++++++++ 20201222/main_test.go | 51 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+) create mode 100644 20201222/main.go create mode 100644 20201222/main_test.go diff --git a/20201222/main.go b/20201222/main.go new file mode 100644 index 0000000..23e74e2 --- /dev/null +++ b/20201222/main.go @@ -0,0 +1,40 @@ +package main + +import ( + "fmt" + "strings" +) + +func main() { + +} + +func isCompatible(a, b, c string) bool { + if c == "" { + return a == "" && b == "" + } + if len(c) != len(a)+len(b) { + return false + } + var r []uint8 + l := -1 + var ra []uint8 + for i := 0; i < len(a); i++ { + ca := a[i] + for { + l++ + cc := c[l] + if cc == ca { + ra = append(ra, ca) + break + } + r = append(r, c[l]) + } + } + for i := l; i < len(c); i++ { + r = append(r, c[i]) + } + fmt.Println(string(ra)) + fmt.Println(string(r)) + return strings.Contains(string(r), b) +} diff --git a/20201222/main_test.go b/20201222/main_test.go new file mode 100644 index 0000000..a8398d2 --- /dev/null +++ b/20201222/main_test.go @@ -0,0 +1,51 @@ +package main + +import "testing" + +func Test_isCompatible(t *testing.T) { + type args struct { + a string + b string + c string + } + tests := []struct { + name string + args args + want bool + }{ + { + "test1", + args{ + "aabcc", + "dbbca", + "aadbbcbcac", + }, + true, + }, + { + "test2", + args{ + "aabcc", + "dbbca", + "aadbbbaccc", + }, + false, + }, + { + "test3", + args{ + "", + "", + "", + }, + true, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := isCompatible(tt.args.a, tt.args.b, tt.args.c); got != tt.want { + t.Errorf("isCompatible() = %v, want %v", got, tt.want) + } + }) + } +}