华为高端AI算法岗位笔试准备
26进制求和
base = 'abcdefghijklmnopqrstuvwxyz'
a = input() #z
b = input() #bc
if len(a) < len(b):
tmp = a
a = b
b = tmp
ret = ''
flag = 0
for i in range(1,len(b)+1):
i = -1*i
tmp = base.index(a[i]) + base.index(b[i]) + flag
ret = base[tmp%26] + ret
flag = int(tmp/26)
for i in range(len(b)+1, len(a)+1):
i = -1 * i
tmp = base.index(a[i]) + flag
ret = base[tmp%26] + ret
flag = int(tmp/26)
print(ret) #cb
字符串查找
def finds2(str1, str2):
for c in str2:
if c not in str1:
return 'false'
return 'true'
s1 = input()
s2 = input()
print(finds2(s1,s2))
字符串解压缩
def strcmp(s1, s2):
n = min(len(s1),len(s2))
for i in range(n):
if ord(s1[i]) < ord(s2[i]):
return -1
if ord(s1[i]) > ord(s2[i]):
return 1
if len(s1)==len(s2):
return 0
if len(s1)>len(s2):
return 1
else:
return -1
#s = input()
s='a11b2bac3bad3abcd2'
lstr = []
lnum = []
i = 0
while i < len(s):
cur = ''
while i < len(s):
if s[i] in '0123456789':
break
cur+=s[i]
i+=1
n = 0
while i < len(s):
if s[i] not in '0123456789':
break
n = n*10 + int(s[i])
i+=1
lnum.append(n)
lstr.append([cur])
#sortidx = sorted(range(len(lnum)), lambda k:lnum[k])
ii = 0
ret = ''
while ii<len(lnum):
minn = 10000000
for i in range(len(lnum)):
if lnum[i] != -1:
if lnum[i] < minn:
minn = lnum[i]
minp = i
elif lnum[i] == minn:
if strcmp(lstr[i][0], lstr[minp][0])==-1: #根据ASCII排序,lstr[i]小
minp = i
ret = ret + lstr[minp][0]*lnum[minp]
lnum[minp] = -1
ii = ii+1
print(ret) #abcdabcdbbbacbacbacbadbadbadaaaaaaaaaaa