博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Simplify Path
阅读量:6001 次
发布时间:2019-06-20

本文共 1627 字,大约阅读时间需要 5 分钟。

Given an absolute path for a file (Unix-style), simplify it.

For example,

path = "/home/", => "/home"
path = "/a/./b/http://www.cnblogs.com/c/", => "/c"

Corner Cases:

 

  • Did you consider the case where path = "/../"?
    In this case, you should return "/".
  • Another corner case is the path might contain multiple slashes '/' together, such as "/home//foo/".
    In this case, you should ignore redundant slashes and return "/home/foo".
用栈来做
1 class Solution { 2 public: 3     string simplifyPath(string path) { 4         // Start typing your C/C++ solution below 5         // DO NOT write int main() function 6         stack
s; 7 string str; 8 for(int i = 0; i < path.size(); i++) 9 {10 if (path[i] == '/')11 {12 if (str == "..")13 {14 if (!s.empty())15 s.pop();16 }17 else if (str != "." && str != "")18 {19 s.push(str);20 }21 22 str = "";23 }24 else25 {26 str += path[i];27 }28 }29 30 if (str == "..")31 {32 if (!s.empty())33 s.pop();34 }35 else if (str != "." && str != "")36 s.push(str);37 38 if (s.empty())39 return "/";40 41 string ret;42 while(!s.empty())43 {44 ret = "/" + s.top() + ret;45 s.pop();46 }47 48 return ret;49 }50 };

 

你可能感兴趣的文章
Android&iOS崩溃堆栈上报
查看>>
关于iOS开发的各种证书
查看>>
【Openjudge】 算24
查看>>
lvreduce -L 1000M /dev/vg0/lv0 表示最后缩减至多大,不是减少了多大
查看>>
ES 自动恢复分片的时候不恢复了是磁盘超过了85%,然后不恢复了 ES可以配置多个数据目录...
查看>>
linux查杀病毒的几个思路
查看>>
宽带速度
查看>>
构建之法阅读笔记5
查看>>
Android判断网络连接状态
查看>>
js常用的函数库
查看>>
Sqlserver 数据库安全
查看>>
netstat命令简单使用
查看>>
Python标示符命名规则
查看>>
SSL certificate problem unable to get local issuer certificate解决办法
查看>>
node.js中使用http模块创建服务器和客户端
查看>>
11.表达式语言
查看>>
3.数据校验和SpringEL
查看>>
面向对象编程-何为对象
查看>>
L2TP/IPSec一键安装脚本
查看>>
android以json形式提交信息到服务器
查看>>