题解 | #字符串排序#

字符串排序

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

    try:
        word = input()

        word = list(word)
        new_word_list = []
        for w in word:
            if 64<ord(w)<91 or 96<ord(w)<123:
                if ord(w)<91:
                    new_word_list.append([w.upper(), "upper"])
                else:
                    new_word_list.append([w.upper(), "lower"])
        
        new_word_list = sorted(new_word_list, key=lambda x: x[0])
        str_new = ""
        need_ = 0
        for index, w in enumerate(word):
            if 64<ord(w)<91 or 96<ord(w)<123:
                if new_word_list[index-need_][1] == "lower":
                    s = new_word_list[index-need_][0].lower()
                else:
                    s = new_word_list[index-need_][0]
                str_new += s
            else:
                str_new += word[index]
                need_ += 1
        print(str_new)
    except:
        break

没有用 isalpha() 这个函数,用的是ord() 转字符为数值

全部评论

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务