parameters: (s)
return_statement: return "".join(stack)
docstring: 这个主要考栈的使用，和字符串的处理。将这个问题拆成多个函数来解决问题
      就简单很多。通过一个popstack函数来获取一段字符，通过判断是否是] 来决定
      是否需要进行计算。
      >>>expressionExpand(3[abc])
      abcabcabc
docstring_summary: 这个主要考栈的使用，和字符串的处理。将这个问题拆成多个函数来解决问题
      就简单很多。通过一个popstack函数来获取一段字符，通过判断是否是] 来决定
      是否需要进行计算。
      >>>expressionExpand(3[abc])
      abcabcabc
docstring_tokens: 这个主要考栈的使用，和字符串的处理。将这个问题拆成多个函数来解决问题 就简单很多。通过一个popstack函数来获取一段字符，通过判断是否是 ] 来决定 是否需要进行计算。 >>> expressionExpand ( 3 [ abc ] ) abcabcabc
function: def expressionExpand(s):
      """
      这个主要考栈的使用，和字符串的处理。将这个问题拆成多个函数来解决问题
      就简单很多。通过一个popstack函数来获取一段字符，通过判断是否是] 来决定
      是否需要进行计算。
      >>>expressionExpand(3[abc])
      abcabcabc
  
      """
      stack = []
      s = split_express(s)
      for i in s:
          if i == "[":
              pass
          elif i == ']':
              t = popstack(stack)
              c = stack.pop()
              stack.append(t * c)
          else:
              stack.append(i)
      for i in range(len(stack)):
          stack[i] = stack[i][::-1]
      return "".join(stack)
function_tokens: def expressionExpand ( s ) : stack = [ ] s = split_express ( s ) for i in s : if i == "[" : pass elif i == ']' : t = popstack ( stack ) c = stack . pop ( ) stack . append ( t * c ) else : stack . append ( i ) for i in range ( len ( stack ) ) : stack [ i ] = stack [ i ] [ : : - 1 ] return "" . join ( stack )