**晚上在公司的论坛上看到一道面试题,题目如下:随机给定一字符串和字符,要求重排,比如:’abde’,’c’。重排之后变成’abcde’
**看到他们给的答案很多都是二分法重排,既然是字符类的处理,当然可以用ASCII码表对应的数字来处理了,所以在这里简单的写一种方法出来,代码如下:
def st(s1,s2):
#先排序
l = sorted(s1)
#然后遍历
for i in l:
if i == s2:
ind = l.index(i)
l.insert(ind, s2)
return l
elif i < s2 and l[l.index(i) + 1] > s2:
l.insert(l.index(i) + 1, s2)
return l
elif i > s2 and l[l.index(i) - 1] < s2:
l.insert(l.index(i) - 1, s2)
return l
elif l[-1] < s2:
l.insert(len(l), s2)
return l
elif l[0] > s2:
l.insert(0, s2)
return l
**测试步骤:
s1='ahijklvwx'
s2='d'
print st(s1,s2)
**测试结果:不知道有没bug(数字、大写字母、特殊字符都试过),最后再转换成字符串,代码中没有写出来
['a', 'd', 'h', 'i', 'j', 'k', 'l', 'v', 'w', 'x']
generated by haroopad