public String convertFromZigZag(String s, int numRows) {
    	    ArrayList<Integer>[] hlp = new ArrayList[numRows];

    	    for(int j=0;j<numRows;j++)
    	      hlp[j] = new ArrayList<Integer>();
    	    
    	    int row = 0;
    	    int way = 1;
    	    for(int i = 0; i < s.length(); i++) {
    	      hlp[row].add(i);
    	      if(row == numRows-1) way = -1;
    	      else if(row == 0) way = 1;
    	      row = row + way;      
    	    } 
    	    ArrayList<Integer> merged = new ArrayList<Integer>(); 
    	    for(int j=0;j<numRows;j++)
    	      merged.addAll(hlp[j]);

    	    char res[] = new char[s.length()];
    	    int cnt = 0;
    	    for(int i : merged) {
    	      res[i] = s.charAt(cnt);
    	      cnt++;
    	    }  
    	    System.out.println(Arrays.toString(res));
    	    return new String(res);
    	    
      }  
      
      public String simplifyPath(String path) {
    	    String[] parts = path.split("/");
    	    Stack<String> stack = new Stack<String>();
    	    // put parts into stack
    	    for(int i = 0; i < parts.length; i++) {
    	      // ignore . and double slash
    	      if(parts[i].equals("") || parts[i].equals(".")) {
    	        continue;      
    	      } else if(parts[i].equals("..")) {
    	        // go back in case of  ..
    	        if(!stack.empty()) stack.pop();
    	      } else {
    	        // put all else into stack   
    	        stack.push(parts[i]);      
    	      }  
    	    }

    	    if(stack.empty()) return "/";
    	    String result = "";
    	    while(!stack.empty()) {
    	      result = "/"+stack.pop()+result;     
    	    }
    	    return result;
    	       
    	}