题解 | #字符串排序#

字符串排序

http://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584

'''
思路:
1、先提取字母组成新字符串;
2、利用sorted(新字符串,key=lambda:x.lower())可以把新字符串中大写字母“视为”小写字母后,按ASCII码顺序返回新字符串列表
好处是可以不破坏原顺序,效果同下:
(key = str.lower() 按字母表顺序对列表字串进行排序,对大小写不敏感。)
3、遍历原字符串,若遇到字母,填新字符串列表中对应字符串,否则填写非字符串
'''

i = input()
str1=''
for k in i:
    if k.isalpha():
        str1=str1+k
# 此时str1: 'AFamousSayingMuchAdoAboutNothing'
str1=sorted(str1,key=lambda x: x.lower(),reverse=False)
# 此时str1: ['A', 'a', 'a', 'A', 'A', 'b', 'c', 'd', 'F', 'g', 'g', 'h', 'h', 'i', ...]
str2=''
index=0
for w in i:
    if w.isalpha():
        str2=str2+str1[index]
        index=index+1
    else:
        str2=str2+w
print(str2)

【牛客站内】华为机试题练习记录

全部评论

相关推荐

02-12 17:30
已编辑
字节跳动_实习生(实习员工)
要怎么办呢牛:我觉得大厂日常实习最大的意义就是给自己背书,一个好公司的实习就像一个好学历似的,能够给自己增加一个标签,让别人觉得你可以。(至于真正实习干了啥,这个感觉并不太重要)。当然一家之言,仅供参考。另外,楼主已经很强了,实习毕业双双拿下,已经领先好多好多人了,羡慕啊
点赞 评论 收藏
分享
01-21 12:26
暨南大学 golang
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客企业服务