zoukankan      html  css  js  c++  java
  • codeforces C. Cd and pwd commands 执行命令行

    执行命令来改变路径 cd

    并显示路径命令 pwd

    一个节目的

    抽样:

    input
    7
    pwd
    cd /home/vasya
    pwd
    cd ..
    pwd
    cd vasya/../petya
    pwd
    
    output
    /
    /home/vasya/
    /home/
    /home/petya/
    原题:

    http://codeforces.com/problemset/problem/158/C


    考点:

    操作字符串 -- 使用C++特别难的,好像java和C#都特别easy。只是使用C++能够清楚每个细节的操作

    这里直接使用string容器来实现了

    #include <string>
    #include <iostream>
    using namespace std;
    
    void Cdandpwdcommands()
    {
    	int n;
    	cin>>n;
    	string path(1, '/');
    	string command;
    	while (n--)
    	{
    		cin>>command;
    		if ("cd" == command)
    		{
    			cin>>command;
    			if (command[0] == '/')//还要注意绝对路径
    			{
    				path = "/";
    			}
    			int i = 0;
    			if (command[0] == '/') i++;
    			while (i < (int)command.size())
    			{
    				for (; i < (int)command.size() && '.' != command[i]; i++)
    					path.push_back(command[i]);
    
    				if (i+1 < (int)command.size() && command[i+1] == '.')
    				{
    					if (path.size() > 1 && path.back() == '/') 
    						path.pop_back();
    
    					while (path.size() && path.back() != '/')
    						path.pop_back();
    
    					i += 2;
    					if (i < (int)command.size() && command[i] == '/')
    						i++;
    				}
    				else if (i < (int)command.size())
    				{
    					path.push_back(command[i++]);
    				}
    			}
    			if (path.empty() || path.back() != '/') path.push_back('/');
    		}
    		else if ("pwd" == command)
    		{
    			cout<<path<<endl;
    		}
    	}
    }



    版权声明:笔者靖心脏,景空间地址:http://blog.csdn.net/kenden23/。只有经过作者同意转载。

  • 相关阅读:
    Object Modeling
    数据库的比较
    关系数据库与非关系数据库
    结构化查询语言-SQL
    SQLite
    acid (数据库事务正确执行的四个基本要素的缩写)
    UITableView设计思想 考察
    复杂软件的考虑点与UITableView
    设计模式与哲学
    复杂对象的组装与创建-建造者模式
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4865145.html
Copyright © 2011-2022 走看看