package com.interview.books.leetcodeoj; /** * Created_By: stefanie * Date: 14-12-23 * Time: 下午2:29 */ public class LOJ71_SimplifyPath { //edge cases: null, "/", "/.", //three different cases: ".", "..", "a" //1. string equals uisng .equals() not == //2. when offset == 0, don't do offset-- when steps[i].equals(".."); //3. return "/" when offset == 0 public String simplifyPath(String path) { if(path == null) return "/"; String[] steps = path.split("/"); int offset = 0; for(int i = 0; i < steps.length; i++){ if(steps[i].length() == 0 || steps[i].equals(".")) continue; else if(steps[i].equals("..")){ if(offset > 0) offset--; } else steps[offset++] = steps[i]; } if(offset == 0) return "/"; StringBuffer buffer = new StringBuffer(); for(int i = 0; i < offset; i++){ buffer.append("/"); buffer.append(steps[i]); } return buffer.toString(); } }