Advertisement
sanya5791

String Compressor

Aug 15th, 2021
1,529
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 0.74 KB | None | 0 0
  1. class Compressor {
  2.    
  3.     fun compress(s: String): String {
  4.         val b = StringBuilder()
  5.         var cnt = 0
  6.         var rChar: Char = s[0]
  7.         for(ch in s) {
  8.             if(cnt == 0) {
  9.                 rChar = ch
  10.             }
  11.  
  12.             if(ch == rChar) {
  13.                 cnt++
  14.             } else {
  15.                 b.appendRepeat(cnt, rChar)
  16.  
  17.                 cnt = 1
  18.                 rChar = ch
  19.             }
  20.         }
  21.  
  22.         if(cnt == 1) {
  23.             b.append(rChar)
  24.         } else {
  25.             b.appendRepeat(cnt, rChar)
  26.         }
  27.  
  28.         return b.toString()
  29.     }
  30.  
  31.     private fun StringBuilder.appendRepeat(repeatCnt: Int, ch: Char) {
  32.         append(repeatCnt.toString())
  33.         append(ch)
  34.     }
  35.  
  36. }
  37.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement