一、简单密码
代码:
a = list(str(input()))
result = ''
for i in range(len(a)):
if a[i] in 'abc':
a[i] = '2'
elif a[i] in 'def':
a[i] = '3'
elif a[i] in 'ghi':
a[i] = '4'
elif a[i] in 'jkl':
a[i] = '5'
elif a[i] in 'mno':
a[i] = '6'
elif a[i] in 'pqrs':
a[i] = '7'
elif a[i] in 'tuv':
a[i] = '8'
elif a[i] in 'wxyz':
a[i] = '9'
elif a[i] in 'ABCDEFGHIJKLMNOPQRSTUVWXY':
a[i] = chr(ord(a[i].lower()) + 1)
elif a[i] == 'Z':
a[i] = 'a'
result = result + a[i]
print(result)
二、删除字符串中出现次数最少的字符
代码:
import copy
a = input()
b = copy.deepcopy(a)
b = list(b)
c = []
b = list(set(b))
for i in range(len(b)):
n = a.count(b[i])
c.append([n,b[i]])
c.sort()
m = 1
for i in range(len(c)-1):
if c[i][0] == c[i+1][0]:
m = m+1
else:
break
a = list(a)
for i in range(m):
for j in range(c[i][0]):
a.remove(c[i][1])
re = ''
for i in range(len(a)):
re = re + a[i]
print(re)
三、字符串排序
思路:首先将字母与非字母分别存在两个三维列表中,列表第一项代表原始值,第二项代表变化之后的值(将大写字母转小写),第三位代表位置。存非字母的列表用二维也可以。然后将存字母的列表按照先字符再出现顺序双属性排序,并将排序之后的列表的原始字符连接得到字符串c,即答案中字母项,再将非字母项按照位置插入字符串即可。
代码:
a = input()
a1 = []
a2 = []
for i in range(len(a)):
if a[i].isalpha():
if ord(a[i]) in range(65,91):
p = a[i].lower()
a1.append([a[i],p,i])
else:
a1.append([a[i],a[i],i])
else:
a2.append([a[i],a[i],i])
b = sorted(a1,key = lambda x:(x[1],x[2]))
c = ''
for i in range(len(b)):
c = c + b[i][0]
c = list(c)
for i in range(len(a2)):
c.insert(int(a2[i][2]),a2[i][0])
cc = ''
for i in range(len(c)):
cc = cc + c[i]
print(cc)