|
@@ -0,0 +1,46 @@
|
|
|
|
|
+package main
|
|
|
|
|
+
|
|
|
|
|
+import (
|
|
|
|
|
+ "strings"
|
|
|
|
|
+ "fmt"
|
|
|
|
|
+ "os"
|
|
|
|
|
+)
|
|
|
|
|
+
|
|
|
|
|
+func makeFancyString(s string) string {
|
|
|
|
|
+ var sb strings.Builder
|
|
|
|
|
+
|
|
|
|
|
+ var char byte = s[0];
|
|
|
|
|
+ var char_count int = 1;
|
|
|
|
|
+ sb.WriteByte(char)
|
|
|
|
|
+
|
|
|
|
|
+ var s_size int = len(s)
|
|
|
|
|
+ var i int = 1
|
|
|
|
|
+ for ; i < s_size; i += 1 {
|
|
|
|
|
+ if s[i] == char {
|
|
|
|
|
+ char_count += 1
|
|
|
|
|
+ if char_count >= 3 {
|
|
|
|
|
+ continue
|
|
|
|
|
+ }
|
|
|
|
|
+ } else {
|
|
|
|
|
+ char = s[i]
|
|
|
|
|
+ char_count = 1
|
|
|
|
|
+ }
|
|
|
|
|
+ sb.WriteByte(char)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return sb.String()
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func main() {
|
|
|
|
|
+ r := func(s string, exp string) {
|
|
|
|
|
+ fmt.Printf(
|
|
|
|
|
+ "makeFancyString(%v) = %v | exp: %v\n", s, makeFancyString(s), exp,
|
|
|
|
|
+ )
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ r("leeetcode", "leetcode")
|
|
|
|
|
+ r("aaabaaaa", "aabaa")
|
|
|
|
|
+ r("aab", "aab")
|
|
|
|
|
+
|
|
|
|
|
+ os.Exit(0)
|
|
|
|
|
+}
|