腾讯技术笔试第三批 100-20-20-80-0

感觉鹅厂orz 呜呜呜

大家都答出多少?


分享编程第四题python, ac 80%

import sys

kl = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
def solution(n1,n2,k,c):
    # n1,n2,c: string
    # k:int
    if k == 10:
        x =int(n1)
        y = int(n2)
    else:
        x = ktoa(n1,k)
        y= ktoa(n2,k)
    if c == '*':
        tmp= x*y
    elif c =='+':
        tmp=x+y
    elif c == '-':
        # non-negative
        tmp = x-y
    if k ==10:
        res=str(tmp)
    else:
        res = atok(tmp,k)
    return res

def atok(num,k):
    # num:int
    # num_k: string
    num_k = ''
    a, b = num, 0 
    while a != 0:
        a = num//k
        b = num % k
        if b > 10:
            num_k = kl[b-10] +num_k
        else:
            num_k = str(b) + num_k
    return num_k

def ktoa(num,k):
    #num: string
    # num_10: int
    l = len(num)
    res = 0
    for si in num:
        if si in kl:
            res += (kl.index(si)+10)* k**(l-1)
        res += int(si) * k**(l-1)
        l -=1
    return res

n = int(sys.stdin.readline().strip())
for i in range(n):
    k = int(sys.stdin.readline().strip())
    n1,n2,c = sys.stdin.readline().strip().split(' ')
    print(solution(n1,n2,k,c))


#笔试题目##腾讯#
全部评论
#fourth def f(n,x):          a=[0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']     b=[]     while True:         s=n//x           y=n%x           b=b+[y]         if s==0:             break         n=s     b.reverse()     data=[]     for i in b:         data.append(str(a[i]))     return "".join(data) number = int(input()) for i in range(number):     jinzhi = int(input())     values = list(map(str,input().split()))     value1 = int(values[0], jinzhi)     value2 = int(values[1], jinzhi)     value3 = values[2]     if value3 == "+":         final = value1 + value2         print(f(final, jinzhi))     elif value3 == "-":         final = value1 - value2         print(f(final, jinzhi))     elif value3 == "*":         final = value1 * value2         print(f(final, jinzhi))      第四道题投机取巧AC,求第三道题AC的
点赞
送花
回复
分享
发布于 2019-09-20 22:11
100
点赞
送花
回复
分享
发布于 2019-09-20 22:13
秋招专场
校招火热招聘中
官网直投

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务