将项目分配给字符串的方法?

Ways to go around assigning an item to a string?

我正在尝试通过计算 formula.Starting 中有多少括号 s=0 并增加 s[= 来重写公式31=] 每当找到“(”并在找到“)”时减少它,但将“(”和“)”保留在新字符串中对应于它们的原始索引。这听起来很简单,也许应该如此,但我找不到解决方案。这是我编码的内容:

def parenthesis(text):
s=0
result=""


for character in text :

    if character=="(":   
        s+= 1
    if s>0 :
        result+= str(s)
    if s==0 :
        result+=str(0)
    elif character==")":       
        s-=1
return result

对于此输入:

print parenthesis("(asss)+(aa(12))")

我明白了

111111011122221

我在将“(”和“)”分配给与原始索引相对应的数字时遇到问题。

喜欢:

(1111)0(11(22))

我现在已经尝试了很多次来实现与此类似的东西:

for i in range(len(result)):
    if result[i-1]<result[i]: 
        result[i] = "("
    if result[i-1]>result[i]:
        result[i] = ")"

当然,这是一个字符串赋值,它不会像这样工作,所以我的问题是我该如何解决这个问题,或者如果有更简单的方法,我会洗耳恭听,感谢您的帮助。

识别后需要在结果中加上括号。您只需添加计数即可。

看起来您正在寻找这样的东西:

def parenthesis(text):
   count = 0
   result = ""

   for character in text:
      if character == "(":   
         count += 1
         result += "("
      elif character == ")":
        count -= 1
        result += ")"
      else:
        result += str(count)

   return result

print parenthesis("(asss)+(aa(12))")

这输出:

(1111)0(11(22))