题解 | #牛群的编码II#
牛群的编码II
https://www.nowcoder.com/practice/ed764a3284744317a787ea8218eea880
考察知识点:进制转换,数组遍历
题目分析:
计算编码差,可以将三进制转为十进制计算再转为三进制。
注意两数差要是一个正数,要注意换算的三进制数首位出现0的情况
采用的编程语言:Python
完整的编码代码:如下所示
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param a string字符串 # @param b string字符串 # @return string字符串 # class Solution: def subtractTernary(self, a: str, b: str) -> str: # 三进制转十进制 def StoD(data: str): sum = 0 j = 0 for i in data[::-1]: sum = sum + (int(i) * (3 ** j)) j = j + 1 return sum # 十进制转三进制,递归计算 def DtoS(data: int): if data == 0: return 0 else: return data % 3 + 10 * DtoS(data // 3) if StoD(a) > StoD(b): result = str(DtoS(StoD(a) - StoD(b))) else: result = str(DtoS(StoD(b) - StoD(a))) if len(a) > len(result): result = "0" + result return result
面试高频TOP202解析 文章被收录于专栏
采用Java,C,Python等方法去解答面试高频TOP202题目,