import java.util.Scanner;

public class Main

{

public static void main(String[] args)

{

Scanner in=new Scanner(System.in);

int p=Integer.parseInt(in.nextLine().trim());

String inputPath=in.nextLine().trim();

if(inputPath.length()==1)

{

inputPath="";

}

StringBuilder[] result=new StringBuilder[p];

for(int i=0;i<p;i++)

{

String path=in.nextLine().trim();

  1. if(path.length()==0)
  2. {
  3. if(inputPath.length()==0)
  4. {
  5. result[i] = new StringBuilder("/");
  6. }
  7. else
  8. result[i]=new StringBuilder(inputPath);
  9. continue;
  10. }
  11. path=path.replaceAll("/{2,}","/");
  12. if(path.length()==1&&path.charAt(0)=='/')
  13. {
  14. result[i]=new StringBuilder("/");
  15. continue;
  16. }
  17. if (path.charAt(0)!='/')
  18. {
  19. path=inputPath+"/"+path;
  20. }
  21. if(path.charAt(path.length()-1)=='/')
  22. {
  23. path=path.substring(0,path.length()-1);
  24. }
  25. String temp="";
  26. int t=0;
  27. String[] path1=path.substring(1).split("/");
  28. for(int j=path1.length-1;j>=0;j--)
  29. {
  30. if(path1[j].equals("."))
  31. {
  32. continue;
  33. }
  34. else if(path1[j].equals(".."))
  35. {
  36. t++;
  37. }
  38. else if(t>0)
  39. {
  40. t--;
  41. }
  42. else
  43. {
  44. temp="/"+path1[j]+temp;
  45. }
  46. }
  47. result[i]= new StringBuilder(temp);
  48. }
  49. in.close();
  50. for (int i=0;i<p;i++)
  51. {
  52. System.out.println(result[i].toString());
  53. }
  54. }

}

CCF|路径解析|Java的更多相关文章

  1. CCF CSP 201604-3 路径解析

    CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201604-3 路径解析 问题描述 在操作系统中,数据通常以文件的形式存储在文件系统中.文件系 ...

  2. JSP Servlet 路径解析 路径设置

    转自:http://ethen.iteye.com/blog/800415 在用JSP和Servlet编写Web应用时,经常遇到的问题就是找不到.do路径,或者.do路径不能解析,其实归根到底就是Se ...

  3. 转 : 深入解析Java锁机制

    深入解析Java锁机制 https://mp.weixin.qq.com/s?__biz=MzU0OTE4MzYzMw%3D%3D&mid=2247485524&idx=1&s ...

  4. 【转】Java学习---解析Java Servlet工作过程

    [原文]https://www.toutiao.com/i6594316694657696264/ 解析Java Servlet工作过程 Servlet简介 Servlet是sun公司提供的一门用于开 ...

  5. Atitit 表达式原理 语法分析 原理与实践 解析java的dsl  递归下降是现阶段主流的语法分析方法

    Atitit 表达式原理 语法分析 原理与实践 解析java的dsl  递归下降是现阶段主流的语法分析方法 于是我们可以把上面的语法改写成如下形式:1 合并前缀1 语法分析有自上而下和自下而上两种分析 ...

  6. requirejs:让人迷惑的路径解析

    接触过requirejs的童鞋可能都知道,无论是通过define来定义模块,还是通过require来加载模块,模块依赖声明都是很重要的一步.而其中涉及到的模块路径解析,对于新手来说,有的时候会让人觉得 ...

  7. 转:VC include 路径解析

    VC include 路径解析 要了解vc中使用#include命令包含头文件所搜寻的路径,必须先了解vc中的几种路径: 1. 系统路径 系统路径在vc中是"Tools->Option ...

  8. paip.获取文件名从路径uapi java python php总结...

    paip.获取文件名从路径uapi java python php总结... =====uapi basename_noext($fname); =============java  自己写.. St ...

  9. stl+模拟 CCF2016 4 路径解析

    // stl+模拟 CCF2016 4 路径解析 // 一开始题意理解错了.... #include <iostream> #include <string> #include ...

随机推荐

  1. ExtJs布局中,控件如何水平居中?

    如此即可,有图有代码有j8: var formGridHead = Ext.create('Ext.form.Panel', { id: 'MyGridHead', region: 'north', ...

  2. ECharts 使用

    最近项目中要做图形报表,要求使用echarts实现,图形报表有很多中实现之前也接触过,但echarts还是头一次听说,正好可以趁这个机会好好学习一下它. 之前不知道就不知道啦,现在知道了就了不得了,一 ...

  3. 深度学习 dns tunnel检测 使用统计特征 全连接网络——精度99.8%

    代码如下: import numpy as np import tflearn from tflearn.layers.core import dropout from tflearn.layers. ...

  4. IOS应用在iPhone5和iPhone5s上不能全屏显示,应用画面上下各有1条黑色的解决方案

    设置启动图片就可以了: 添加启动图: 接着设置为启动图: 这样就ok了

  5. mac系统下配置aapt环境变量

    在当前用户目录下新建.bash_profile文件,执行以下命令: vi .bash_profile 然后保存,输入命令  :wq 最后使命令生效,执行命令 source .bash_profile

  6. bzoj 5281 Talent Show —— 01分数规划+背包

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=5281 二分一个答案比值,因为最后要*1000,不如先把 v[] *1000,就可以二分整数: ...

  7. Robotframework之Run Keyword And Return Status和Run Keyword

    今天在android项目中遇到一个问题,场景达人每天第一次接单时,会弹出提示框:每日完成订单配送后将扣取1元保险费,是否确认接单?,点击确定后,才能接单成功,并且只有每天第一次接单才会弹出 如下图 此 ...

  8. Lightoj 1140(数位DP)

    求一个区间内的数含有多少个0. dp[len][pre]表示长度为len的数,含有pre个0. 需要加一个标记,来表示前缀是否为0(可以是一串连续的0),如果前缀一直为0,就一直搜,如果前缀不为0,就 ...

  9. Tool:XMind

    ylbtech-Tool:XMind XMind 是一款非常实用的商业思维导图软件,应用全球最先进的Eclipse RCP 软件架构,全力打造易用.高效的可视化思维软件,强调软件的可扩展.跨平台.稳定 ...

  10. bzoj4326

    二分+树剖+差分 之前的做法naive,莫名其妙的wa,明明uoj95分 看到最小最大上二分,树上路径问题直接剖,然后问题就转化成了一个判定问题,每次二分出最长路径长度,问能不能达到.那么我们就把所有 ...