以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。
示例 1:
输入:"/home/"输出:"/home"解释:注意,最后一个目录名后面没有斜杠。
示例 2:
输入:"/../"输出:"/"解释:从根目录向上一级是不可行的,因为根是你可以到达的最高级。
示例 3:
输入:"/home//foo/"输出:"/home/foo"解释:在规范路径中,多个连续斜杠需要用一个斜杠替换。
示例 4:
输入:"/a/./b/../../c/"输出:"/c"
示例 5:
输入:"/a/../../b/../c//.//"输出:"/c"
示例 6:
输入:"/a//bc/d//././/.."输出:"/a/b/c" 解答:逻辑如下: 【1】所有相连的斜杠均可以取消,不保留,用start来记录状态; 【2】循环找相连的 '.',最后的位置为path[i-1],截取该字符串。 【3】判断是否为".." 判断p是否为空,是则contunue,否则弹出; 若不是'.'且s不为空,则p压入s; 若p为空,则直接返回'/'; 否则依次添加路径
//71string simplifyPath(string path){ vectorp; string res; int i=0,start; while(i