From ed8c5a30884e281310ec7f6afc1fcdcfd04e4021 Mon Sep 17 00:00:00 2001 From: bumpsoo Date: Mon, 4 Nov 2024 13:33:52 +0900 Subject: [PATCH] https://leetcode.com/problems/string-compression-iii --- medium/string_compression_iii.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 medium/string_compression_iii.py diff --git a/medium/string_compression_iii.py b/medium/string_compression_iii.py new file mode 100644 index 0000000..72d4a28 --- /dev/null +++ b/medium/string_compression_iii.py @@ -0,0 +1,29 @@ +# https://leetcode.com/problems/string-compression-iii + +class Solution: + def compressedString(self, word: str) -> str: + last_char = None + l = 0 + result = [] + def to_string(ch, cnt, result): + if cnt <= 9: + result.append(str(cnt)) + result.append(ch) + else: + cnt -= 9 + result.append('9') + result.append(ch) + to_string(ch, cnt, result) + for ch in word: + if last_char == None: + last_char = ch + l = 1 + continue + if last_char != ch: + to_string(last_char, l, result) + l = 1 + last_char = ch + else: + l += 1 + to_string(last_char, l, result) + return ''.join(result)