# 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))
def test_decode_string(self): self.assertEqual("aaabcbc", decode_string("3[a]2[bc]")) self.assertEqual("accaccacc", decode_string("3[a2[c]]"))