本肥連寫個回文都寫一坨屎
我有點焦慮了==
def kMirror(self, k: int, n: int) -> int:
def to_base_k(num, k):
if num == 0:
return "0"
digits = []
while num > 0:
remainder = num % k
if remainder < 10:
digits.append(str(remainder))
else:
digits.append(chr(ord('a') + remainder - 10))
num //= k
return ''.join(reversed(digits))
def kth_palin(kk) -> int:
# k-th palin (start from 1)
length = 1
count = 0
while True:
half_len = (length+1)//2
start = 10**(half_len-1)
end = 10**half_len
if count + end - start >= kk:
half = start + kk - count - 1
if length%2 == 0:
return int(str(half)+str(half)[::-1])
else:
return int(str(half)+str(half)[:-1][::-1])
else:
count += (end-start)
length += 1
cnt = 0
cur_sum = 0
for i in range(n):
while True:
cnt += 1
cur_10 = kth_palin(cnt)
cur_k = to_base_k(cur_10, k)
if cur_k == cur_k[::-1]:
cur_sum += cur_10
if i==(n-1):
return cur_sum
else:
break
return -1