|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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)))
复制代码
三星答案:
基础语法:
算法讲解:
|
|