题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/2cc32b88fff94d7e8fd458b8c7b25ec1?tpId=117&tqId=37836&rp=1&ru=/exam/oj&qru=/exam/oj&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D117&difficulty=undefined&judgeStatus=undefined&tags=&title=
from enum import Flag
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 进制转换
# @param M int整型 给定整数
# @param N int整型 转换到的进制
# @return string字符串
#
class Solution:
def solve(self , M: int, N: int) -> str:
# write code here
dict={}
#设置Falg标记正负,如果为负数,那么设置Flag为False,初始化的时候设置为True
flag=True
L1=[]
for i in range(10,17):
L1.append(i)
L2=[]
for i in range(ord("A"),ord("G")):
L2.append(chr(i))
#建立一个10-16对应的A-F的字典
c=zip(L1,L2)
for i in c:
dict[i[0]]=i[1]
tmps=[]
res=M
if res<0:
res=int(str(res)[1:])
flag=False
#循环取余数和模数,将模式加到结果列表
while res > N:
tmp = res%N
res = res//N
if tmp>=10:
tmp=dict[tmp]
tmps.append(tmp)
tmps.append(res)
#判断是正数还是负数并拼接tmps
tmps =list(map(str,tmps))[::-1]
if not flag:
tmp="-"+"".join(tmps)
else:
tmp="".join(tmps)
return (tmp)
查看19道真题和解析
海康威视公司氛围 1008人发布