【发布时间】:2017-09-23 03:05:09
【问题描述】:
我正在尝试在左括号和右括号之间按字母顺序对值进行排序,如下所示
(m,b,l,a(d,g,c(l,e)),f(k,g,h(i)),j) 我想要一个的输出
(a(c(e,l),d,g),b,f(g,h(i),k),j,l,m) 排序。
我已经完成了一些编码,但它变得古怪。我能够对最里面的括号进行排序,但无法继续。
indexofparen = []
for i, c in enumerate(s):
if c == "(":
indexofparen.append(i)
##print(indexofparen)
closeparen = []
for i, c in enumerate(s):
if c == ")":
closeparen.append(i)
##print(closeparen)
parenindex=s.rindex("(")
##print(parenindex)
matchparen=s.index(")")-1
##print(matchparen)
list_val = s[s.rindex("(")+1:s.index(")")].split(",")
##print("Before:", list_val)
for passnum in range(len(list_val)-1, 0, -1):
for i in range(passnum):
if list_val[i] > list_val[i+1]:
list_val[i], list_val[i+1] = list_val[i+1], list_val[i]
##print(list_val)
s1=s[:parenindex] + "(" + ','.join(str(e) for e in list_val) + ")" + s[matchparen:]
##print(s1)
s2 = s[indexofparen[1]+1:closeparen[2]]
在这之后,我有点发疯了。任何帮助都是为了完善和解决这个难题,我们将不胜感激。非常感谢您花时间帮助我。非常感谢。
【问题讨论】:
-
是否所有值都是唯一的,或者可能有几个相同的值(在同一级别和不同级别)?
标签: python string sorting recursion parentheses