| 1234567891011121314151617181920212223242526 | class Solution {    public List<List<String>> findDuplicate(String[] paths) {        List<List<String>> res = new LinkedList<>();        HashMap<String, Integer> map = new HashMap<>();        for (String path : paths) {            String[] part = path.split(" ");            for (int i = 1; i < part.length; i++) {                String[] file = part[i].split("\\(");                Integer idx = map.get(file[1]);                if (idx == null) {                    res.add(new LinkedList<String>());                    idx = res.size() - 1;                    map.put(file[1], idx);                }                String fullPath = part[0] + "/" + file[0];                res.get(idx).add(fullPath);            }        }        Iterator<List<String>> iter = res.iterator();        while (iter.hasNext()) {            List<String> list = iter.next();            if (list.size() == 1) iter.remove();        }        return res;    }}
 |