马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 不二如是 于 2022-9-6 18:45 编辑
一星答案:
def getnew(test):
# 建立一个字典来给字母编号
dic = {}
for x, y, n, m in zip(list("abcdefghijklmnopqrstuvwxyz"), list("ABCDEFGHIJKLMNOPQRSTUVWXYZ"), range(2, 54, 2), range(1, 53, 2)):
dic[x] = n
dic[y] = m
# 建立一个字典给数字编字母,跟第一个是相反的,为了后面替换回来字母
dic2 = {}
for each in dic:
dic2[str(dic[each])] = each
# 把字符串变成列表然后把字母替换成数字后按照小到大排序
list1 = list(test)
list2 = []
for i in list1:
h = i.replace(i, str(dic[i]))
list2.append(int(h))
list2.sort()
# 把排完序号的新的列表中数字替换回之前的字母
newlist = []
for k in list(map(str, list2)):
kk = k.replace(k, dic2[k])
newlist.append(kk)
# 把列表变成字符串返回
newstr = "".join(newlist)
return newstr
test = "easfishcFishCWAwaeqshfohoahoFHAOJFAOJFAJhaofhaofoajFAOUFOAUQ"
print(getnew(test))
二星答案:
test = "easfishcFishCWAwaeqshfohoahoFHAOJFAOJFAJhaofhaofoajFAOUFOAUQ"
def foo(s):
return ord(s.lower()) * 2 + s.islower()
print(''.join(sorted(test, key=foo)))
三星答案:
基础语法:
算法讲解:
|