女装网站设计方案,马鞍山集团网站建设,商城网站建设怎么收费,短视频营销常用的平台有想要精通算法和SQL的成长之路 - 简化路径 前言一. 简化路径 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 简化路径
原题连接 思路如下#xff1a;
我们根据 / 去拆分字符串#xff0c;得到每个子目录。这里拿到的子目录可能是空字符串#xff0c;需要… 想要精通算法和SQL的成长之路 - 简化路径 前言一. 简化路径 前言 想要精通算法和SQL的成长之路 - 系列导航 一. 简化路径
原题连接 思路如下
我们根据 / 去拆分字符串得到每个子目录。这里拿到的子目录可能是空字符串需要注意一下。我们遍历这个目录用一个双向队列存储合法的子目录。如果遇到的子目录是 . . 说明是向上层目录前进我们从移除队尾元素。如果遇到的子目录是 .咱啥也不用管。剩余的子目录都是有效路径我们往队尾塞。最后我们再次遍历双向队列从队首开始取拼接字符串得到最终的简化路径。
public String simplifyPath(String path) {LinkedListString queue new LinkedList();for (String item : path.split(/)) {if (item.equals(..)) {// 队列必须非空我们才能移除if (!queue.isEmpty()) {queue.pollLast();}} else if (!..equals(item) !item.isEmpty()) {// 这里注意一下空元素以及 . 我们都不用管queue.addLast(item);}}StringBuilder res new StringBuilder();// 从队首元素开始取元素拼接字符while (!queue.isEmpty()) {res.append(/ queue.pollFirst());}String rr res.toString();// 最后再判空一下return rr.isEmpty() ? / : rr;
}