【LeetCode】1496. 判斷路徑是否相交(Java)
給你一個字串 path,其中 path[i] 的值可以是 ‘N’、‘S’、‘E’ 或者 ‘W’,分別表示向北、向南、向東、向西移動一個單位。
機器人從二維平面上的原點 (0, 0) 處開始出發,按 path 所指示的路徑行走。
如果路徑在任何位置上出現相交的情況,也就是走到之前已經走過的位置,請返回 True ;否則,返回 False 。
class Solution {
public boolean isPathCrossing(String path) {
Set<Integer> set = new HashSet<>();
int x = 0;
int y = 0;
//1 <= path.length <= 10^4,路線最長為10000,所以這裡x就只乘10000
set.add(x * 10000 + y);
for (int i = 0; i < path.length(); i++) {
switch (path.charAt(i)) {
case 'N': y++; break;
case 'S': y--; break;
case 'W': x++; break;
case 'E': x--; break;
}
if (set.contains(x * 10000 + y)) return true;
set.add(x * 10000 + y);
}
return false;
}
}
沒什麼思路,看了官方釋出的題解,使用自定義hash,然後儲存到set中,有了思路做起來就容易多了,評論區下有人說用String也可以,本來想用String來試試的,不過考慮到String拼接影響效率,最後還是用官方的題解來做。
相關文章
- sh指令碼判斷路徑是否存在指令碼
- canvas判斷點是否在路徑內Canvas斷點
- nginx判斷路徑是否含有某個引數做判斷Nginx
- 判斷元素是否在視口和元素相交
- Python科研武器庫 - 檔案/路徑操作 - 判斷路徑是否存在Python
- shell判斷系統路徑中是否存在空格
- Python中怎麼判斷路徑是否為目錄?Python
- 判斷網路是否連線
- java判斷物件是否為空Java物件
- java判斷字串是否為空Java字串
- 如何在Java中判斷是否為空Java
- java判斷mysql中資料庫是否存在JavaMySql資料庫
- C# 正規表示式判斷是否是有效的檔案、資料夾路徑C#
- 一句話判斷網路是否聯通
- 判斷是否能連線網際網路
- java判斷輸入的字串是否為數字Java字串
- 不靠腫瘤本身就能判斷是否得癌症?AI「另闢蹊徑」診斷肺癌!AI
- 判斷字串是否為空字串
- python 判斷是否為中文Python
- 判斷字串是否唯一字串
- 判斷URL字串是否合法字串
- python判斷是否為listPython
- 網路遊戲公司如何判斷是否被攻擊?遊戲
- java字串、異常小練習--判斷qq是否合法Java字串
- Java判斷欄位是否為空,為空賦值 ?Java賦值
- 判斷一個物件是否為空物件,判斷一個物件中是否有空值物件
- JavaScript判斷字串是否為空JavaScript字串
- js判斷物件是否為空JS物件
- js判斷checkbox是否選中JS
- jQuery 判斷元素是否隱藏jQuery
- JavaScript 判斷是否是陣列JavaScript陣列
- JavaScript 判斷函式是否存在JavaScript函式
- golang判斷檔案是否存在Golang
- MySQL判斷表名是否存在MySql
- QJsonObject判斷欄位是否存在JSONObject
- Delphi Variant 判斷是否為空
- 判斷協議是否出網協議
- mysql如何判斷是否為空MySql