16 lines
409 B
Tcl
16 lines
409 B
Tcl
proc encode {string} {
|
|
set encoding {}
|
|
# use a regular expression to match runs of one character
|
|
foreach {run -} [regexp -all -inline {(.)\1+|.} $string] {
|
|
lappend encoding [string length $run] [string index $run 0]
|
|
}
|
|
return $encoding
|
|
}
|
|
|
|
proc decode {encoding} {
|
|
foreach {count char} $encoding {
|
|
append decoded [string repeat $char $count]
|
|
}
|
|
return $decoded
|
|
}
|