zoukankan      html  css  js  c++  java
  • CSP201604-3 路径解析

     

    思路分析:

      这道题要求把所有的路径都转化成不含".."或"."的绝对路径输出,首先我们对于输入的字符串就要判断它是绝对路径还是相对路径,所以我们读入的字符串首先判断str【0】==‘/’。 对于相对路径,我们将根节点和这个相对路径做一个拼接,转化成绝对路径。

      接下来就是对".."和"."以及"//"的处理。 对于.. , 我们要找到每一个这样字符串的地方,然后删掉/..前面的一个路径和 .. 即可。对于 . 我们直接删掉即可。然后找到//删掉即可。

      最后输出正规化之后的绝对路径。

    代码:

    #include<iostream>
    #include<sstream>
    using namespace std;
    
    int main() {
        int n, pos, pos1;
        
        string root;
        cin >> n >> root;
        getchar();
        while (n--) {
            string str;
            getline(cin, str);
            if (str.empty()) str = root;                
            else if (str[0] != '/') str = root + "/" + str;
            while ((pos = str.find("/../")) != -1){
                if (!pos)str.erase(0, 3);
                else {                
                    pos1 = str.rfind("/", pos - 1);
                    str.erase(pos1, pos - pos1 + 3);
                }
            }
            while ((pos = str.find("/./")) != -1) str.erase(pos, 2);
            while ((pos = str.find("//")) != -1) str.erase(pos,1);
            if (str.size() > 1 && str[str.size() - 1] == '/') str.erase(str.size() - 1, 1);
            cout << str << endl;
        }
        return 0;
    }
    View Code
  • 相关阅读:
    HSSFSheet XSSFWorkbook SXSSF Java读取Excel数据
    js 获取相同name元素的属性值
    jsp 页面返回、本页面刷新
    Spring MVC启动过程(1):ContextLoaderListener初始化
    eclipse中无法查看引用的jar包源码
    eclipse添加tomcat服务器
    PLsql链接oracle配置
    JDK 与TOMCAT的安装详解
    JSON笔记
    linux系统命令大全
  • 原文地址:https://www.cnblogs.com/Xu-SDU/p/13080086.html
Copyright © 2011-2022 走看看