add new solutions
This commit is contained in:
parent
886b5e0a8e
commit
67cad91898
47 changed files with 1549 additions and 1 deletions
39
solutions/4/q443/solution.go
Normal file
39
solutions/4/q443/solution.go
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue