LeetCode題解(1496):判斷路徑是否相交(Python)

題目:原題鏈接(簡單)

解法 時間複雜度 空間複雜度 執行用時
Ans 1 (Python) O(N)O(N) O(N)O(N) 32ms (96.86%)
Ans 2 (Python)
Ans 3 (Python)

LeetCode的Python執行用時隨緣,只要時間複雜度沒有明顯差異,執行用時一般都在同一個量級,僅作參考意義。

解法一(存儲到過的位置):

def isPathCrossing(self, path: str) -> bool:
    orient = {
        "N": (0, 1),
        "S": (0, -1),
        "E": (1, 0),
        "W": (-1, 0),
    }

    x, y = 0, 0
    already = {(0, 0)}

    for p in path:
        o = orient[p]
        x += o[0]
        y += o[1]
        if (x, y) in already:
            return True
        already.add((x,y))
    else:
        return False
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章