[Leetcode解題] 753. Cracking the Safe

23 August 2025
medium graph

753. Cracking the Safe

題目

753. Cracking the Safe

解題思路

這題我們要用Eulerian Path的思路來解,也就是我們能不能用一筆劃來走完所有的edge跟node。

程式碼

class Solution:
    def crackSafe(self, n: int, k: int) -> str:
        seen = set()
        ans = []
        def dfs(node):
            for x in map(str, range(k)):
                nei = node + x
                if nei not in seen:
                    seen.add(nei)
                    dfs(nei[1:])
                    ans.append(x)

        dfs("0" * (n-1))
        return "".join(ans) + "0" * (n-1)

時間複雜度

$O(k^n)$