题解 | #字符串排序#
字符串排序
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() 转字符为数值