Anonymous user
Run-length encoding: Difference between revisions
Kotlin implementation of Run Length Encoding
(→Version 2: improvement) |
(Kotlin implementation of Run Length Encoding) |
||
Line 1,929:
rld "12W1B12W3B24W1B14W"
"WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW"</lang>
=={{header|Kotlin}}==
Tail recursive implementation of Run Length Encoding
<lang scala>
tailrec fun runLengthEncoding(text:String,prev:String=""):String {
if (text.length == 0){
return prev
}
val initialChar = text.get(0)
val count = text.takeWhile{ it==initialChar }.count()
return runLengthEncoding(text.substring(count),prev + "$count$initialChar" )
}
</lang>
Tests:
<lang scala>
assert(runLengthEncoding("TTESSST") == "2T1E3S1T")
assert(runLengthEncoding("WWWWWWWWWWWWBWWWWWWWWWWWWBBBWWWWWWWWWWWWWWWWWWWWWWWWBWWWWWWWWWWWWWW")
== "12W1B12W3B24W1B14W")
</lang>
=={{header|Lasso}}==
|