思路:先把路径按反斜杠split成数组,然后用一个ArrayList去模拟。如果遇到空或者.则不处理;如果遇到..则删除ArrayList最后一个元素(注意如果只有1个元素则不删除);其他情况直接加到ArrayList里面。注意特判输入空串的情况。

 1 import java.util.*;
 2 public class Main {
 3     public static void main(String[] args) {
 4         Scanner cin = new Scanner(System.in);
 5         int n = cin.nextInt();
 6         String curPath = cin.next();
 7         String[] curPathArr = curPath.split("/", -1);
 8         cin.nextLine();
 9         while (n-- > 0) {
10             String path = cin.nextLine();
11             if (path.length() == 0)
12                 System.out.println(curPath);
13             else {
14                 String[] pathArr = path.split("/", -1);
15                 ArrayList<String> resultArr = new ArrayList<String>();
16                 int st = 1;
17                 if (pathArr[0].length() == 0)
18                     resultArr.add("");
19                 else {
20                     for (String s : curPathArr)
21                         resultArr.add(s);
22                     st = 0;
23                 }
24                 for (int i = st; i < pathArr.length; i++) {
25                     if (pathArr[i].equals("..")) {
26                         if (resultArr.size() > 1)
27                             resultArr.remove(resultArr.size() - 1);
28                     }
29                     else if (!pathArr[i].equals(".") && !pathArr[i].equals(""))
30                         resultArr.add(pathArr[i]);
31                 }
32                 if (resultArr.size() == 1)
33                     System.out.println("/");
34                 else {
35                     for (int i = 0; i < resultArr.size() - 1; i++)
36                         System.out.print(resultArr.get(i) + "/");
37                     System.out.println(resultArr.get(resultArr.size() - 1));
38                 }
39             }
40         }
41     }
42 }

转载于:https://www.cnblogs.com/iRedBean/p/5385057.html

CCF2016.4 - C题相关推荐

  1. CCF2016.4 - A题

    思路:枚举每个点,看看它是否同时小于/大于前一个点和后一个点 1 import java.util.Scanner; 2 public class Main { 3 public static voi ...

  2. 牛年前的一小结——打响本命年的第一枪,继续刷题!

    经过一段时间的小尝试,摸索出了一点点头儿吧. 总结一下子. 关于面试的java,像我这个经验层次(1-2year普通厂)的都不会太难.最多超不出力扣中等难度. 多练习链表.树.指针类的比较基础的题目: ...

  3. 快起床刷题去,别人把你offer拿走啦

    好久没有上力扣刷题咯,又到了关键的时刻,却忘得零零散散,囧~ 话说,刷题.学算法.常用,这些技能才能长在身上! 上一道刚刚遇到的正菜~ 题:给定一个整数数组 nums 和一个目标值 k,请实现一个方法 ...

  4. LeetCode简单题之删除字符使字符串变好

    题目 一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 . 给你一个字符串 s ,请你从 s 删除 最少 的字符,使它变成一个 好字符串 . 请你返回删除后的字符串.题目数据保证答案总 ...

  5. LeetCode中等题之区域和检索 - 数组可修改

    题目 给你一个数组 nums ,请你完成两类查询. 其中一类查询要求 更新 数组 nums 下标对应的值 另一类查询要求返回数组 nums 中索引 left 和索引 right 之间( 包含 )的nu ...

  6. LeetCode简单题之基于排列构建数组

    题目 给你一个 从 0 开始的排列 nums(下标也从 0 开始).请你构建一个 同样长度 的数组 ans ,其中,对于每个 i(0 <= i < nums.length),都满足 ans ...

  7. LeetCode简单题之Excel 表中某个范围内的单元格

    题目 Excel 表中的一个单元格 (r, c) 会以字符串 "" 的形式进行表示,其中: 即单元格的列号 c .用英文字母表中的 字母 标识. 例如,第 1 列用 'A' 表示, ...

  8. LeetCode中等题之简易银行系统

    题目 你的任务是为一个很受欢迎的银行设计一款程序,以自动化执行所有传入的交易(转账,存款和取款).银行共有 n 个账户,编号从 1 到 n .每个账号的初始余额存储在一个下标从 0 开始的整数数组 b ...

  9. LeetCode简单题之有多少小于当前数字的数字

    题目 给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目. 换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i ...

最新文章

  1. 熬夜翻译完的PureFTPd配置文件
  2. 2017年3月23下午学习日志
  3. 迷宫问题让你深度理解递归(回溯)
  4. Minimum Triangulation
  5. 懒人chromium net android移植指南
  6. 视频容器格式与编码格式简介
  7. [react] 在React中什么时候使用箭头函数更方便呢?
  8. linux创建sftp服务器,Linux Centos 6.6搭建SFTP服务器
  9. python迭代器的设计
  10. 写单例模式以及防止反射破坏
  11. 《Java程序性能优化》-葛一鸣
  12. TCP和Udp的区别是什么?
  13. DHCPv6相关知识简单总结
  14. The Devil is in the Details: Self-Supervised Attention for Vehicle Re-Identification(翻译)
  15. 宾果消消消鸿蒙版,宾果消消消最新版
  16. Cocos2D游戏项目CCTableView在Xcode7.2下的无法滚动问题
  17. USM Appliance 部署和用户文档
  18. 《数字图像处理》dlib人脸检测获取关键点,delaunay三角划分,实现人脸的几何变换warpping,接着实现两幅人脸图像之间的渐变合成morphing
  19. vue判断在安卓app、IOSapp、微信浏览器、安卓浏览器、IOS浏览器、PC浏览器下作不同处理
  20. 【AT指令使用】安信可ESP-12S/ESP32S模组AT固件应用之微信小程序热点配网OTA升级

热门文章

  1. 程序员新年要实现的10个愿望
  2. UTC转换BJT时间 时间转换 c语言程序设计 mooc 翁恺
  3. oracle ora-14404,分区表的分区表空间不同引起的删除表空间错误
  4. js 创建file对象_JS 之创建对象
  5. mac 使用js打开计算器_Numi for Mac(mac计算器软件)
  6. [斯坦福]距离编码-更为强大的GNN
  7. Blockchain.com,Eden Block,DACM等知名公司加入Pocket生态
  8. Kronos Research推出结合WOO质押机制的新资管产品规模已达1500万美元
  9. SAP License:SAP Solution Manager中的常用命令
  10. 通过还款计划表监控还款异常