题解 | #字符串排序#

字符串排序

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


# 1.排序方式:全部转换成小写字母进行排序 
# 2.用for i in str1: i.isupper()  +upindex[] 记录大写字母转化的位置,排序后再转换回去。
# 3.记录下 not i.isalpha() 的字符和位置index 后续 insert。采用栈pop()的特性一个一个insert

while True:
    try:
        str1=input()
        not_alpha=[]
        not_alpha_index=[]
        alpha_stack=[]
        for i in range(len(str1)):  #不能 in str1 否则用str1.index来记录索引的话,会照成相等元素的索引值
                                    #记录第一个出现的索引。所以为了要记录索引的话,遍历必须用range(len)
            if not str1[i].isalpha():
                not_alpha.append(str1[i])
                not_alpha_index.append(i)
            elif str1[i].isalpha():
                alpha_stack.append(str1[i])
        result=sorted(alpha_stack,key=lambda x:x.lower()) #key 按照某种规则对原序列元素进行排序但是不改变元素本身。
        for i in range(len(not_alpha_index)):
            result.insert(not_alpha_index[i],not_alpha[i])
        print("".join(result))
        
    except:
        break
全部评论

相关推荐

11-01 20:03
已编辑
门头沟学院 算法工程师
Amazarashi66:这种也是幸存者偏差了,拿不到这个价的才是大多数
点赞 评论 收藏
分享
11-09 14:54
已编辑
华南农业大学 产品经理
大拿老师:这个简历,连手机号码和照片都没打码,那为什么关键要素求职职位就不写呢? 从上往下看,都没看出自己到底是产品经理的简历,还是电子硬件的简历? 这是一个大问题,当然,更大的问题是实习经历的描述是不对的 不要只是去写实习流程,陈平,怎么去开会?怎么去讨论? 面试问的是你的产品功能点,是怎么设计的?也就是要写项目的亮点,有什么功能?这个功能有什么难处?怎么去解决的? 实习流程大家都一样,没什么优势,也没有提问点,没有提问,你就不得分 另外,你要明确你投的是什么职位,如果投的是产品职位,你的项目经历写的全都是跟产品无关的,那你的简历就没用 你的面试官必然是一个资深的产品经理,他不会去问那些计算机类的编程项目 所以这种四不像的简历,在校招是大忌
点赞 评论 收藏
分享
评论
3
1
分享
牛客网
牛客企业服务