| 123456789101112131415161718192021222324252627282930 | 
							- func compress(chars []byte) int {
 
- 	fast, slow, cnt, n := 1, 0, 1, len(chars)
 
- 	if n <= 1 {
 
- 		return n
 
- 	}
 
- 	for ; fast < n; fast++ {
 
- 		if chars[fast] != chars[fast-1] {
 
- 			chars[slow] = chars[fast-1]
 
- 			slow++
 
- 			if cnt != 1 {
 
- 				num := strconv.Itoa(cnt)
 
- 				for end, i := slow+len(num), 0; slow < end; slow, i = slow+1, i+1 {
 
- 					chars[slow] = num[i]
 
- 				}
 
- 				cnt = 1
 
- 			}
 
- 		} else {
 
- 			cnt++
 
- 		}
 
- 	}
 
- 	chars[slow] = chars[fast-1]
 
- 	slow++
 
- 	if cnt != 1 {
 
- 		num := strconv.Itoa(cnt)
 
- 		for end, i := slow+len(num), 0; slow < end; slow, i = slow+1, i+1 {
 
- 			chars[slow] = num[i]
 
- 		}
 
- 	}
 
- 	return slow
 
- }
 
 
  |