package q443 func compress(chars []byte) int { seqLen := 0 char := chars[0] p := 1 writeNumber := func(num int) { i := 1 for ; i*10 <= num; i *= 10 { } for ; i > 0; i /= 10 { chars[p] = byte(num/i) + '0' p++ num %= i } } for _, c := range chars { if c == char { seqLen++ } else { char = c if seqLen > 1 { writeNumber(seqLen) } seqLen = 1 chars[p] = char p++ } } if seqLen > 1 { writeNumber(seqLen) } return p } var _ = compress