腾讯09-20技术研究与数据分析 第四题 K进制

这一套试卷的第一题是柠檬题
分享T4代码给一个小伙伴看
我就A了这一道

用python写的

from string import ascii_uppercase, digits
strings = digits + ascii_uppercase

def change_base(n, k):
    all_str = strings[:k]
    x,y = divmod(n,k)
    if x>0:
        return change_base(x,k) + all_str[y]
    else:             
        return all_str[y]

def get_origin(st, k):
    d = {i:j for i,j in zip(strings[:k], [i for i in range(0,k)])}
    s = 0
    for i, j in enumerate(list(st)[::-1]):
        s += d[j] * (k ** i)
    return s

if __name__ == '__main__':
    n = int(input())
    for i in range(n):
        k = int(input())
        str1, str2, chra = input().split()
        if chra == '+':
            print(change_base(abs(get_origin(str1, k) + get_origin(str2, k)), k))
        elif chra == '-':
            print(change_base(abs(get_origin(str1, k) - get_origin(str2, k)), k))
        elif chra == '*':
            print(change_base(abs(get_origin(str1, k) * get_origin(str2, k)), k))



#腾讯##笔试题目#
全部评论
第五题  按字典序取名字的 没有全A,提示超时了 求大佬们分享思路 求腾讯粑粑再捞我一次。。。 n, m = list(map(int,input().split())) values = [] for i in range(n):     values.append(input()) values = sorted(values) for i in range(m):     str1, str2 = input().split()     for i, j in enumerate(values):         if j[0:len(str1)] == str1 and j[0:len(str2)] != str2:             print(j)             del values[i]             break     else:         print(-1)
点赞 回复 分享
发布于 2019-09-20 22:13
楼主,可以分享一下,第四题的思路吗?python代码看不太懂。
点赞 回复 分享
发布于 2019-09-22 20:17

相关推荐

09-27 10:54
重庆大学 C++
人已微死:致敬传奇耐测王。
投递小米集团等公司10个岗位
点赞 评论 收藏
分享
10-09 22:05
666 C++
找到工作就狠狠玩CSGO:报联合国演讲,报电子烟设计与制造
点赞 评论 收藏
分享
1 1 评论
分享
牛客网
牛客企业服务