这道题很简单,大约是词法分析器差不多的原理。但是我觉得看了别人简洁的代码后还是很有收获的。本人的冗余代码就不好意思放上来了,以下是别人的参考代码和值得借鉴的地方:

class Solution {
public:string simplifyPath(string path) {string res, t;stringstream ss(path);vector<string> v;while (getline(ss, t, '/')) {if (t == "" || t == ".") continue;if (t == ".." && !v.empty()) v.pop_back();else if (t != "..") v.push_back(t);}for (string s : v) res += "/" + s;return res.empty() ? "/" : res;}
};

这段代码巧妙地利用<sstream>里面的stringstream+getline降低处理字符串复杂程度, 其中函数原型istream& getline ( istream &is , string &str , char delim );参数说明,is 进行读入操作的输入流,str 用来存储读入的内容,delim 终结符,遇到该字符停止读取操作,不写的话默认为回车。

转载于:https://www.cnblogs.com/wtt1996/p/10546053.html

leetcode71相关推荐

  1. leetcode71. 简化路径 Unix 风格

    以 Unix 风格给出一个文件的绝对路径,你需要简化它.或者换句话说,将其转换为规范路径. 在 Unix 风格的文件系统中,一个点(.)表示当前目录本身:此外,两个点 (..) 表示将目录切换到上一级 ...

  2. leetcode71 (2022.1.6)

    class Solution {public:string simplifyPath(string path) {// 栈声明vector<string> s;string tmp;//i ...

  3. 【大总结3】leetcode解题总览(算法、剑指offer、SQL、多线程、shell)

    3/22更新 剑指offer 题目链接 建议大部分题都会做,都能比较快速且准确的写出来.关于做题方式,我的建议是:一道一道刷即可,因为难度一般,不用系统的学习什么知识,遇到实在不会的就跳过即可. 我这 ...

  4. leetcode解题总览

    3/22更新 剑指offer 题目链接 建议大部分题都会做,都能比较快速且准确的写出来.关于做题方式,我的建议是:一道一道刷即可,因为难度一般,不用系统的学习什么知识,遇到实在不会的就跳过即可. 我这 ...

  5. Leetcode刷题笔记:栈与队列篇

    基础知识 栈和队列的原理大家应该很熟悉了,队列是先进先出,栈是先进后出. 如图所示: 那么我这里再列出四个关于栈的问题,大家可以思考一下.以下是以C++为例,使用其他编程语言的同学也对应思考一下,自己 ...

  6. 2020年算法汇总【150道】

    leetcode刷题汇总 LeetCode001|统计位数为偶数的数字 LeetCode002|返回倒数第k个节点 LeetCode003|替换空格 LeetCode004|合并两个排序的链表 lee ...

最新文章

  1. Spring4-HelloWorld
  2. 32位crc校验码程序_CRC码计算及校验原理的最通俗诠释
  3. 学python要基础吗-无基础可以学习Python吗?
  4. PHP isset 函数作用
  5. 佳能g3800故障灯说明书_汽车仪表灯的使用方法以及注意事项
  6. win7/10 画图程序按宽度高度mm cm精确调整图片尺寸
  7. python基础——使用模块
  8. ioslabel阴影,UILabel的内阴影
  9. 【飞秋】在SPItemEventReceiver中使用BeforeProperties和AfterProperties
  10. matlab 课程设计循环码性能分析,matlab课程设计--循环码的性能分析
  11. 县级外业调查及举证软件_我公司中标江西省第三次全国国土调查县级建库软件项目...
  12. Atitit 外包管理规范attilax总结
  13. Amobea读写分离
  14. 笔记:PJL的一些用法
  15. 计算机网络常用端口号大全
  16. access通过身份证号提取性别_身份证号码男女函数(excel中关于18位身份证号的提取性别公式)...
  17. PCAN和TSMaster软件入门
  18. linux开发环境 tq2440,Linux2.6.35在TQ2440的移植过程(一)
  19. 央行数字货币技术架构---HashGraph共识算法1
  20. Js的Generator函数(一)

热门文章

  1. 在Ubuntu/Fedora/CentOS中安装Gitblit
  2. linux黄金命令[积累中]
  3. java线程同步的五种方法
  4. eclipse下的spring环境配置
  5. Makefile 使用总结
  6. 为 raspberrypi 开发内核模块
  7. 引用 vsftpd配置手册(实用)
  8. Atom-无懈可击的Markdown编辑器
  9. 影像采集-拍照 (用自己的插件 )简单逻辑
  10. DUL 恢复简单表测试