본문 바로가기
LeetCode/Array & Hashing

[LeetCode][Kotlin] String Encode and Decode

by jinwo_o 2024. 10. 18.

String Encode and Decode

Design an algorithm to encode a list of strings to a single string. The encoded string is then decoded back to the original list of strings.

 

Please implement encode and decode

문자열 목록을 단일 문자열로 인코딩하는 알고리즘을 설계합니다. 인코딩된 문자열은 원래 문자열 목록으로 다시 디코딩됩니다.

encode와 decode를 구현하세요.

 

Example 1:

Input: ["neet","code","love","you"]

Output:["neet","code","love","you"]

 

Example 2:

Input: ["we","say",":","yes"]

Output: ["we","say",":","yes"]

 

Constraints:

  • 0 <= strs.length < 100
  • 0 <= strs[i].length < 200
  • strs[i] contains only UTF-8 characters.

코드

class Solution {

    fun encode(strs: List<String>): String {
        var res = ""
        for (s in strs) {
            res += s.length.toString() + "#" + s
        }
        return res
    }

    fun decode(s: String): List<String> {
        val res = mutableListOf<String>()
        var i = 0

        while (i < s.length) {
            val j = s.indexOf('#', i)
            val length = s.substring(i, j).toInt()
            res.add(s.substring(j + 1, j + 1 + length))
            i = j + 1 + length
        }

        return res
    }
}