LeetCode in Kotlin

3163. String Compression III

Medium

Given a string word, compress it using the following algorithm:

Return the string comp.

Example 1:

Input: word = “abcde”

Output: “1a1b1c1d1e”

Explanation:

Initially, comp = "". Apply the operation 5 times, choosing "a", "b", "c", "d", and "e" as the prefix in each operation.

For each prefix, append "1" followed by the character to comp.

Example 2:

Input: word = “aaaaaaaaaaaaaabb”

Output: “9a5a2b”

Explanation:

Initially, comp = "". Apply the operation 3 times, choosing "aaaaaaaaa", "aaaaa", and "bb" as the prefix in each operation.

Constraints:

Solution

class Solution {
    fun compressedString(word: String): String {
        val builder = StringBuilder()
        var last = word[0]
        var count = 1
        var i = 1
        val l = word.length
        while (i < l) {
            if (word[i] == last) {
                count++
                if (count == 10) {
                    builder.append(9).append(last)
                    count = 1
                }
            } else {
                builder.append(count).append(last)
                last = word[i]
                count = 1
            }
            i++
        }
        builder.append(count).append(last)
        return builder.toString()
    }
}
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy