609. Find Duplicate File in System My SubmissionsBack To Contest

weekly contest 35的第三题,感觉就是普通的String操作呀。。
值得注意的是for (int i = res.size() -1 ; i >= 0 ; i --){这种remove操作。

先贴一下我的。

public class Solution {
    public List<List<String>> findDuplicate(String[] paths) {
        Map<String, List<String>> map = new HashMap<>();
        for (int i = 0; i < paths.length; i++) {
            String s = paths[i];
            String files[] = s.split(" ");
            for (int j = 1; j < files.length; j++) {
                String file = files[j];
                int leftEmbraceIndex = 0;
                for (int k = 3; k < file.length(); k++) {
                    if (file.charAt(k) == '(') {
                        leftEmbraceIndex = k;
                        break;
                    }
                }
                String key = file.substring(leftEmbraceIndex, file.length());
                String dir = files[0] + "/" + file.substring(0, leftEmbraceIndex);
                List<String> ss = map.getOrDefault(key, new ArrayList<String>());
                ss.add(dir);
                map.put(key , ss);
            }
        }

        List<List<String>> res = new ArrayList<>();
        res.addAll(map.values());

        for (int i = res.size() -1 ; i >= 0 ; i --){
            if (res.get(i).size() == 1){
                res.remove(i);
            }
        }
        return res;
    }

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,779评论 0 33
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,779评论 18 399
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 1,916评论 0 2
  • 一抬头我看见你 红红的 沐着柔和的暮橙色光芒 镶嵌在 最后一抹蓝色的天空 我怀抱着书页的墨香飘起来 飞进凤凰树枝桠...
    bc9d20879e18阅读 135评论 0 1
  • 晚上十点多关了店门,骑着自行车在小街小道上慢慢走。 几乎每个十字路口,都遇到有人,画了个不完整的圈,在烧五色纸。 ...
    凝箫阅读 273评论 0 3