分析:本题目要求字符串内非重复正序+倒序+正序+倒序+..重新排列,例如aaaabbbbcccc,最后abccbaabccba效果
以下实现思路:1、把字符串借助序列set去重 2、sorted排序 3、取字符放到result,并在原有字符串s中replace删去 4、重复1和2过程,string重新去重排序;并用列表revserse倒序,重复3的过程取结果并删去。5、把以上过程while循环,判断条件为string非空。
用的知识点:
1、set(string),字符串set,去重,type变成序列
2、sorted()对序列排序,正序排列,type变成list
3、字符串replace实现删除。s.replace()
s.replace(old,new,1)代表替换第一个;s.replace(old,new)代表替换全部;s.repalce(old,'')代表删除
4、list.reverse()对列表反序排列
5、循环判断,while是否为空
代码:
def sorString(s):
result = ''
while len(s) > 0:
s_temp = set(s)
s_temp = sorted(s_temp)
#print('s_temp',s_temp)
for i in s_temp:
result = result + i
s = s.replace(i, '', 1)
s_temp1 = sorted(set(s))
#print('type(s_temp1)',type(s_temp1))
s_temp1.reverse()
#print('s_temp1',s_temp1)
for i in s_temp1:
result = result + i
s = s.replace(i,'',1)
print('result',result)
if __name__ == '__main__':
s = "aaaabbbbcccc"
sorString(s)
s = "rat"
sorString(s)
s = "gggg"
sorString(s)
s = "spo"
sorString(s)
运行结果:
result abccbaabccba
result art
result gggg
result ops
python sorString 上升下降字符串
最新推荐文章于 2022-10-23 22:34:39 发布