路径解析_90
来源:互联网 发布:农村淘宝服务站快递 编辑:程序博客网 时间:2024/05/19 00:36
这个问题一开始用暴力解法很多地方过于繁琐,并且开始认为当前路径和之后输入的路径不能一起处理。。修修改改好多次。。思路堵塞。。后来参考了一个大佬的写法,真的历害思路清晰,可以把STL的函数用的很好。。有的函数虽然知道但没想起要用。。
90分代码如下(应该是输入上有些BUG):
#include<iostream>#include<string>using namespace std;int main(){ios::sync_with_stdio(false);int index;//指向数组下标string str_in,str_now;int p;cin>>p;cin>>str_now;//if(str_now.length()>=3) strfir = str_now.substr(str_now.length()-6,str_now.length()-4);//else strfir = "/";//Load no,input,yes;//string str_yes="";for(int i=1; i<=p; i++){cin>>str_in;if(str_in[0]!='/'){str_in = str_now + "/" + str_in + "/";}while((index = str_in.find("//")) != -1){int count = 2;while(str_in[index + count] == '/')count++;str_in.erase(index, count-1);}//index = 0;//end = str_in.length();//while(index < end)//{//if(str_in[index] == '.')//{//if(str_in[index+1] == '.')//{//}////}//else if(str_in[index] == '/')//{////}//}if(str_in.size() > 1 && str_in[str_in.size() - 1] == '/'){str_in.erase(str_in.size() - 1);}while((index = str_in.find("/./"))!=-1){str_in.erase(index+1,2);}while((index = str_in.find("/../")) != -1){if(index == 0)str_in.erase(index, 3);else{int index_temp;index_temp = str_in.rfind("/", index - 1);str_in.erase(index_temp, index - index_temp + 3);}if(str_in.size() == 0)str_in = "/";}cout<<str_in<<endl;}return 0;}
阅读全文
0 0
- 路径解析_90
- java学习日记_90:异常处理
- VC include 路径解析
- VC include 路径解析
- VC include 路径解析
- VC include 路径解析
- VC include 路径解析
- VC include 路径解析
- 解析文件路径
- VC include 路径解析
- php 解析目录路径
- VC include 路径解析
- VC Include路径解析~~
- VC include 路径解析
- 项目路径解析
- VC include 路径解析
- 解析dijkstra求最短路径
- struts1的路径解析
- Orientation of Edges CodeForces
- Linux下部署LAMP环境(Linux+Apache+MySQL+PHP)
- C++ Primer Plus第二章的学习心得
- python---模块定义,模块导入方式,模块同目录调用、模块跨目录调用
- Linux重要文件介绍
- 路径解析_90
- Ralph And His Tour in Binary Country
- Tools相关3_一、什么是SVN
- Java工作经验总结(一),视频发布了~~~
- 从菜鸟到Android资深工程师的进阶之路
- Red Hat
- 简单选择排序
- java——图形界面编程
- 最小生成树--kruskal