# inside the square brackets is being repeated exactly k times.
# Note that k is guaranteed to be a positive integer.

# You may assume that the input string is always valid; No extra white spaces,
# square brackets are well-formed, etc.

# Furthermore, you may assume that the original data does not contain any
# digits and that digits are only for those repeat numbers, k.
# For example, there won't be input like 3a or 2[4].

# Examples:

# s = "3[a]2[bc]", return "aaabcbc".
# s = "3[a2[c]]", return "accaccacc".
# s = "2[abc]3[cd]ef", return "abcabccdcdcdef".
from algorithms.strings import decode_string

s1 = "3[a]2[bc]"
s2 = "3[a2[c]]"
s3 = "2[abc]3[cd]ef"

print(decode_string(s1))


print(decode_string(s2))


print(decode_string(s3))


Example #2
0
 def test_decode_string(self):
     self.assertEqual("aaabcbc", decode_string("3[a]2[bc]"))
     self.assertEqual("accaccacc", decode_string("3[a2[c]]"))
Example #3
0
 def test_decode_string(self):
     self.assertEqual("aaabcbc", decode_string("3[a]2[bc]"))
     self.assertEqual("accaccacc", decode_string("3[a2[c]]"))