There's the classic run length encoding and decoding.
input output
a3b2c5 aaabbccccc
And that's fairly straight forward and done before.
The challenge is to also account for a non-standard behavior when multiple characters precede the run length (a single digit from 0-9). Each character before the run length digit (the last digit before a non-digit or end of the string) has that value applied to it individually and printed out in order.
Some test input and output including some edge cases:
input output
ab3c5 aaabbbccccc
a0b3 bbb
13b1 111b
a13b1 aaa111b
a123b1 aaa111222b
aa2a1b1 aaaaab
- A character sequence (
[a-zA-Z0-9]+
) must be followed by its run length length ([0-9]
) - Only valid input needs to be considered (
([a-zA-Z0-9]+[0-9])*
)- yes, empty string is valid input.
- Input is via standard input, output via standard output
This is code golf, number of bytes determines the winner.