
package mainimport ( "fmt" "strconv")func compress(chars []byte) int { var anchor = 0 var write = 0 for read := 0; read < len(chars); read++ { if read+1 == len(chars) || chars[read+1] != chars[read] { chars[write] = chars[anchor] write++ if read > anchor { char := strconv.Itoa(read - anchor + 1) for i := 0; i < len(char); i++ { chars[write] = char[i] write++ } } anchor = read + 1 } } return write}func main() { fmt.Println(compress([]byte{'a', 'a', 'a', 'b', 'b'})) fmt.Println(compress([]byte{'a','a','b','b','c','c','c'})) fmt.Println(compress([]byte{'a'})) fmt.Println(compress([]byte{'a','b','b','b','b','b','b','b','b','b','b','b','b'}))}