题解 | #牛群的编码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题目,
查看7道真题和解析