題目:原題鏈接(簡單)
解法 | 時間複雜度 | 空間複雜度 | 執行用時 |
---|---|---|---|
Ans 1 (Python) | 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