题解 | #进制转换#

进制转换

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)

全部评论

相关推荐

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