#-----------------------------------------------# #题目描述:有如下字符串 “{a,b}c{d,e}",它表示多个字符串集合,其中括号{a,b}表示集合中的字符串可以任意取一个, # 所以原字符串可以展开成如下四个字符串:“acd" ,"bcd","ace","bce" #请写一段代码,把包含的字符串展开成多个 #输入: # “{a,b}c{d,e}" #输出: # {"acd","ace","bcd","bce"} #-------------------------------------------------# def permutation_and_combination(ss, k): global ret,x if len(ss)==k: ret= ret+'"'+x+'"'+',' return temp=ss[k] for i in temp: x=x+i permutation_and_combination(ss,k+1) x=x[:-1] def divided(str): #先获取括号的位置,通过括号找集合 index=[] for i in range(len(str)): if str[i]=="{" or str[i]=="}": index.append(i) #截取 各个集合 ss=[] if len(index)!=0: for j in range(len(index)-1): s=str[index[j]+1:index[j+1]].split(",") ss.append(s) #排列组合 permutation_and_combination(ss,0) print('{' + ret[:-1] + '}') else: #没有括号直接返回 print('{' +str+ '}') str=input("请输入字符串:") ret="" x='' #划分有几个集合,并排列组合 ss=divided(str)
试题WL_1
最新推荐文章于 2024-09-15 22:31:42 发布