CCF2016.4 - C题
思路:先把路径按反斜杠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题相关推荐
- CCF2016.4 - A题
思路:枚举每个点,看看它是否同时小于/大于前一个点和后一个点 1 import java.util.Scanner; 2 public class Main { 3 public static voi ...
- 牛年前的一小结——打响本命年的第一枪,继续刷题!
经过一段时间的小尝试,摸索出了一点点头儿吧. 总结一下子. 关于面试的java,像我这个经验层次(1-2year普通厂)的都不会太难.最多超不出力扣中等难度. 多练习链表.树.指针类的比较基础的题目: ...
- 快起床刷题去,别人把你offer拿走啦
好久没有上力扣刷题咯,又到了关键的时刻,却忘得零零散散,囧~ 话说,刷题.学算法.常用,这些技能才能长在身上! 上一道刚刚遇到的正菜~ 题:给定一个整数数组 nums 和一个目标值 k,请实现一个方法 ...
- LeetCode简单题之删除字符使字符串变好
题目 一个字符串如果没有 三个连续 相同字符,那么它就是一个 好字符串 . 给你一个字符串 s ,请你从 s 删除 最少 的字符,使它变成一个 好字符串 . 请你返回删除后的字符串.题目数据保证答案总 ...
- LeetCode中等题之区域和检索 - 数组可修改
题目 给你一个数组 nums ,请你完成两类查询. 其中一类查询要求 更新 数组 nums 下标对应的值 另一类查询要求返回数组 nums 中索引 left 和索引 right 之间( 包含 )的nu ...
- LeetCode简单题之基于排列构建数组
题目 给你一个 从 0 开始的排列 nums(下标也从 0 开始).请你构建一个 同样长度 的数组 ans ,其中,对于每个 i(0 <= i < nums.length),都满足 ans ...
- LeetCode简单题之Excel 表中某个范围内的单元格
题目 Excel 表中的一个单元格 (r, c) 会以字符串 "" 的形式进行表示,其中: 即单元格的列号 c .用英文字母表中的 字母 标识. 例如,第 1 列用 'A' 表示, ...
- LeetCode中等题之简易银行系统
题目 你的任务是为一个很受欢迎的银行设计一款程序,以自动化执行所有传入的交易(转账,存款和取款).银行共有 n 个账户,编号从 1 到 n .每个账号的初始余额存储在一个下标从 0 开始的整数数组 b ...
- LeetCode简单题之有多少小于当前数字的数字
题目 给你一个数组 nums,对于其中每个元素 nums[i],请你统计数组中比它小的所有数字的数目. 换而言之,对于每个 nums[i] 你必须计算出有效的 j 的数量,其中 j 满足 j != i ...
最新文章
- 熬夜翻译完的PureFTPd配置文件
- 2017年3月23下午学习日志
- 迷宫问题让你深度理解递归(回溯)
- Minimum Triangulation
- 懒人chromium net android移植指南
- 视频容器格式与编码格式简介
- [react] 在React中什么时候使用箭头函数更方便呢?
- linux创建sftp服务器,Linux Centos 6.6搭建SFTP服务器
- python迭代器的设计
- 写单例模式以及防止反射破坏
- 《Java程序性能优化》-葛一鸣
- TCP和Udp的区别是什么?
- DHCPv6相关知识简单总结
- The Devil is in the Details: Self-Supervised Attention for Vehicle Re-Identification(翻译)
- 宾果消消消鸿蒙版,宾果消消消最新版
- Cocos2D游戏项目CCTableView在Xcode7.2下的无法滚动问题
- USM Appliance 部署和用户文档
- 《数字图像处理》dlib人脸检测获取关键点,delaunay三角划分,实现人脸的几何变换warpping,接着实现两幅人脸图像之间的渐变合成morphing
- vue判断在安卓app、IOSapp、微信浏览器、安卓浏览器、IOS浏览器、PC浏览器下作不同处理
- 【AT指令使用】安信可ESP-12S/ESP32S模组AT固件应用之微信小程序热点配网OTA升级
热门文章
- 程序员新年要实现的10个愿望
- UTC转换BJT时间 时间转换 c语言程序设计 mooc 翁恺
- oracle ora-14404,分区表的分区表空间不同引起的删除表空间错误
- js 创建file对象_JS 之创建对象
- mac 使用js打开计算器_Numi for Mac(mac计算器软件)
- [斯坦福]距离编码-更为强大的GNN
- Blockchain.com,Eden Block,DACM等知名公司加入Pocket生态
- Kronos Research推出结合WOO质押机制的新资管产品规模已达1500万美元
- SAP License:SAP Solution Manager中的常用命令
- 通过还款计划表监控还款异常