LeetCode---71. Simplify Path
阿新 • • 發佈:2018-12-13
LeetCode—71. Simplify Path
題目
思路及解法
分隔符"/“之間的字元可以分為三種情況,根據這三種情況我們使用棧實現操作: 1.如果是”…",應該返回上級選單,對應出棧 2.如果是".“或者”",保持不變,不對棧進行操作 3.其他情況將字元壓棧
這道題可以看看其中的語法實現
程式碼
class Solution { public String simplifyPath(String path) { Deque<String> stack = new LinkedList<>(); Set<String> skip = new HashSet<>(Arrays.asList("..",".","")); for(String dir: path.split("/")){ if(dir.equals("..") && !stack.isEmpty()) stack.pop(); else if(!skip.contains(dir)) stack.push(dir); } String result = ""; for(String dir: stack) result = "/"+dir+result; return result.isEmpty()? "/":result; } }