2081. Sum of k Mirror Numbers (Hard) - TengnanYao/daily_leetcode GitHub Wiki

class Solution:
    def kMirror(self, k: int, n: int) -> int:
        result = set()
        arr = {""}
        while len(result) < n + 1:
            temp = set()
            for x in arr:
                for i in range(k):
                    a0, b0 = x + str(i) + x[ : : -1], x + str(i) + str(i) + x[ : : -1]
                    a1, b1 = int(a0, k), int(b0, k)
                    a2, b2 = str(a1), str(b1)
                    if a2 == a2[ : : -1]:
                        result.add(a1)
                    if b2 == b2[ : : -1]:
                        result.add(b1)
                    if b0[0] != "0":
                        temp.add(x + str(i))
            arr = temp
        return sum(sorted(result)[: n + 1])