Compiler Explorer - Python (Python 3.11)
def decompress(s: str): cnt = 0 is_num = False index = 0 ans: list[str] = [] while index < len(s): match (s[index].isdigit(), is_num): case (True, _): cnt = 10 * cnt + int(s[index]) is_num = True index += 1 case (False, True): ans.extend(s[index] * cnt) cnt = 0 index += 1 case (False, False): ans.append(s[index]) cnt = 0 index += 1 return "".join(ans) assert decompress("ab2b3c") == "abbbccc" assert decompress("") == ""
https://godbolt.org/z/97v6vqs8z