ccf-路径解析201604-3
C++没有split函数
但是有一个简单的方法,利用stringstream构建;
然后这道题就很简单啦 还要注意不能用cin 因为有空行的存在
#include <bits/stdc++.h>
using namespace std;
vector <string> f_cur,f_now;
int n;
vector <string> split (string str,const char flag='/') {
istringstream iss(str);
vector <string> ans;
while (getline(iss,str,flag)) {
if (str.size())
ans.push_back(str);
}
return ans;
}
void _formal (vector <string>& ans, vector <string> f_now) {
for (int i=;i<f_now.size();i++) {
if (f_now[i]==".") continue;
else if (f_now[i]==".."){
if (ans.size())
ans.pop_back();
}
else ans.push_back(f_now[i]);
}
}
int main ()
{
string str;
cin>>n>>str; getchar();
f_cur=split(str);
while (n--) {
getline(cin,str); f_now=split(str); // 开始用cin 导致只有90
vector <string> ans;
if (str.size()&&str[]=='/') _formal (ans,f_now);
else {
ans=f_cur;
_formal (ans,f_now);
}
if (ans.size()) {
for (int i=;i<ans.size();i++)
cout<<"/"<<ans[i];
cout<<"\n";
}
else cout<<"/\n";
}
return ;
}
ccf-路径解析201604-3的更多相关文章
- CCF|路径解析|Java
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in=ne ...
- CCF CSP 201604-3 路径解析
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201604-3 路径解析 问题描述 在操作系统中,数据通常以文件的形式存储在文件系统中.文件系 ...
- requirejs:让人迷惑的路径解析
接触过requirejs的童鞋可能都知道,无论是通过define来定义模块,还是通过require来加载模块,模块依赖声明都是很重要的一步.而其中涉及到的模块路径解析,对于新手来说,有的时候会让人觉得 ...
- 转:VC include 路径解析
VC include 路径解析 要了解vc中使用#include命令包含头文件所搜寻的路径,必须先了解vc中的几种路径: 1. 系统路径 系统路径在vc中是"Tools->Option ...
- JSP Servlet 路径解析 路径设置
转自:http://ethen.iteye.com/blog/800415 在用JSP和Servlet编写Web应用时,经常遇到的问题就是找不到.do路径,或者.do路径不能解析,其实归根到底就是Se ...
- stl+模拟 CCF2016 4 路径解析
// stl+模拟 CCF2016 4 路径解析 // 一开始题意理解错了.... #include <iostream> #include <string> #include ...
- 转:requirejs:让人迷惑的路径解析(~~不错)
接触过requirejs的童鞋可能都知道,无论是通过define来定义模块,还是通过require来加载模块,模块依赖声明都是很重要的一步.而其中涉及到的模块路径解析,对于新手来说,有的时候会让人觉得 ...
- Xamarin版的C# SVG路径解析器
原文:Xamarin版的C# SVG路径解析器 Xamarin版的C# SVG路径解析器,对SVG的Path路径进行解析,其中包括: 主程序SvgPathParser.cs, 相关接口定义:ISour ...
- nodejs系列笔记02---模块路径解析
模块路径解析规则 参考这篇博客 我们已经知道,require函数支持斜杠(/)或盘符(C:)开头的绝对路径,也支持./开头的相对路径.但这两种路径在模块之间建立了强耦合关系,一旦某个模块文件的存放位置 ...
- rails中path、url路径解析,routes信息,form_for剖析,link_to示例,路由实例说明
原创,转载请注明http://www.cnblogs.com/juandx/p/3963023.html rails中path.url路径解析,routes信息,form_for剖析,link_to ...
随机推荐
- shogun docker image 中import shogun error
- 关于ajax的跨域
在前端开发中,跨域是经常遇到的问题,也是面试最喜欢问的问题,究其根本原因,是浏览器的同源策略所致,是浏览器为了避免不同域名不能共享cookie以及locationstorage等等,发起请求的时候无法 ...
- 在学习JavaScript中用到的示例
jQuery老师博客 一.定时器示例 功能:让input的文本框,显示时间,并实时更新 逻辑思路: 1.先定义一个函数,用来把当前时间赋值给input.value 2.开始button设置点击事件,并 ...
- VsCode编写博客发布
发布图片测试: Java代码测试: //计算机等级考试p6例1.2 //编辑者:鸿灬嗳 package test00; class Circle{ static double PI=3.1415926 ...
- 使用vagrant构建你们团队的开发环境
vagrant可以让团队快速搭建统一的开发环境. 搭建vagrant你需要准备三个东西: 1.vagrant安装包 . 2.virtualbox安装包. 3.打包后的vagrant虚拟环境镜像 (ln ...
- tf.contrib.slim
https://blog.csdn.net/mao_xiao_feng/article/details/73409975
- C++中:(*p)++和*(p++)和*p++的区别
1. 理解自增自减运算符 (1)后置自增自减运算符优先级>前置自增自减运算符. (2)前置自增自减运算符“变量先自增自减再使用”. (3)后置自增自减运算符“变量先使用再自增自减”. ...
- L1-059 敲笨钟
微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉.为了增加敲钟的趣味性,还会糟改几句古诗词.其糟改的方法为:去网上搜寻压“ong”韵的古诗词,把句尾的三个字换成“敲笨钟”.例如唐代 ...
- 踩坑学习python自动化测试第一天!
这只是一个标题, # 迭代器与生成器# 迭代器有两个基本的方法:iter() 和 next(). # 字符串,列表或元组对象都可用于创建迭代器:"""list1 = [1 ...
- effective_java 第34条:用接口模拟可伸缩的枚举
例如: /** * 加减乘除枚举 * Created by yulinfeng on 8/20/17. */ public enum Operation { PLUS { double apply(d ...