URL映射

CCF201803-3

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<vector>
#include<sstream>
#include<map>
#include<queue>
using namespace std;
const int maxn=101;
const int maxm=101;
string s[maxn];
// 字符串 <str>:用于匹配一段字符串,注意字符串里不能包含斜杠。例如,abcde0123。
// 整数 <int>:用于匹配一个不带符号的整数,全部由阿拉伯数字组成。例如,01234。
// 路径 <path>:用于匹配一段字符串,字符串可以包含斜杠。例如,abcd/0123/。
struct node{
int id;//1-int,2-str,3-path
string s;
};
vector<node> ve;
int n,m;
map<string,string>ma;
bool legal(char c){
return (c>='0'&&c<='9')||(c>='a'&&c<='z')||(c>='A'&&c<='Z')||c=='.'||c=='_'||c=='-';
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
string name;
cin>>s[i]>>name;
ma[s[i]]=name;
}
for(int i=0;i<m;i++){
string t;
cin>>t;
bool flag=false;
for(int j=0;j<n;j++){
ve.clear();
string now=s[j];
bool flagsub=true;
int ks,kt;
for(ks=0,kt=0;ks<now.length()&&kt<t.length();){//k表示s[i]
if(now[ks]=='/'&&t[kt]=='/'){
ks++,kt++;
continue;
}
if(now[ks]=='<'){
string temp="";
while(now[++ks]!='>'){
temp+=now[ks];
}
ks++;//--------------
if(temp=="int"){
string ts="";
ts+=t[kt];
while(t[++kt]!='/'){
ts+=t[kt];
if(t[kt]>'9'||t[kt]<'0'){
flagsub=false;
break;
}
}
ve.push_back(node{1,ts});
}else if(temp=="str"){
string ts="";
ts+=t[kt];
while(t[++kt]!='/'){
ts+=t[kt];
if(!legal(t[kt])){
flagsub=false;
break;
}
}
ve.push_back(node{2,ts});
}else if(temp=="path"){//是路径的话
string ts="";
ts+=t[kt];
while((++kt)!=t.length()){
ts+=t[kt];
if(!legal(t[kt])&&t[kt]!='/'){
flagsub=false;
break;
}
}
ve.push_back(node{3,ts});
}
continue;
}
if(now[ks]==t[kt]){
ks++,kt++;
continue;
}
if(now[ks]!=t[kt]){
flagsub=false;
break;
}
}
if(ks<now.length()||kt<t.length()){
flagsub=false;
}
if(flagsub){
flag=true;
cout<<ma[now];
for(int k=0;k<ve.size();k++){
if(ve[k].id==1){//数字
cout<<" ";
int ksb=0;
if(ve[k].s[0]=='0')
ksb++;
for(;ksb<ve[k].s.length();ksb++){
cout<<ve[k].s[ksb];
}
}else
cout<<" "<<ve[k].s;
}
cout<<endl;
break;
}
}
if(!flag){
cout<<404<<endl;
}
}
return 0;
}

CCF(URL映射:80分):字符串处理+模拟的更多相关文章

  1. url映射 ccf (Java正则表达式80分解法)

    问题描述 试题编号: 201803-3 试题名称: URL映射 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 URL 映射是诸如 Django.Ruby on Rails 等 ...

  2. 2-字符串模拟- URL映射

    问题描述 试题编号: 201803-3 试题名称: URL映射 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 URL 映射是诸如 Django.Ruby on Rails 等 ...

  3. CCF 201803-3 URL映射

    CCF 201803-3  URL映射 试题编号: 201803-3 试题名称: URL映射 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 URL 映射是诸如 Django. ...

  4. 二叉搜索树的结构(30 分) PTA 模拟+字符串处理 二叉搜索树的节点插入和非递归遍历

    二叉搜索树的结构(30 分) PTA 模拟+字符串处理 二叉搜索树的节点插入和非递归遍历   二叉搜索树的结构(30 分) 二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则 ...

  5. PTA数据结构与算法题目集(中文) 7-43字符串关键字的散列映射 (25 分)

    PTA数据结构与算法题目集(中文)  7-43字符串关键字的散列映射 (25 分) 7-43 字符串关键字的散列映射 (25 分)   给定一系列由大写英文字母组成的字符串关键字和素数P,用移位法定义 ...

  6. CCF CSP 201803-3 URL映射

    转载自 https://blog.csdn.net/tigerisland45/article/details/81697594 /* CCF201803-3 URL映射 */ #include &l ...

  7. CCF-CSP 第三题字符串整理(模拟大法好)

    URL映射 规则的相邻两项之间用‘/’分开,所以我们先把所有项分开,然后依次把两个字符串的对应项匹配即可. 分离字符串这里用字符串流(stringstream)处理,先把所有的‘/’变为空格,然后一个 ...

  8. ASP.NET MVC 5 Web编程2 -- URL映射(路由原理)

    本章将讲述ASP.NET MVC5 的路由原理,即URL映射机制. 简单点就是解释:为什么MVC在浏览器输入地址就能访问到类(或类中的方法)?这是怎么做到的?我自己可以通过.NET写出一个自己的MVC ...

  9. django中“url映射规则”和“服务端响应顺序”

    1.django搜索路径 使用 import 语句时,Python 所查找的系统目录清单.      查看方式:         import sys        print sys.path   ...

随机推荐

  1. AtCoder Beginner Contest 177 E - Coprime (数学)

    题意:给你\(n\)个数,首先判断它们是否全都__两两互质__.然后再判断它们是否全都互质. 题解:判断所有数互质很简单,直接枚举跑个gcd就行,关键是第一个条件我们要怎么去判断,其实我们可以对所有数 ...

  2. 2017, X Samara Regional Intercollegiate Programming Contest E. Bonuses and Teleports (思维,模拟)

    题意:在\(x\)轴上有很多传送点和钻石,当位于传送点上时,可以传送到其他任意传送点(不记操作数),位于钻石上时可以吃掉它,每次可以移动一个单位,问最少多少次可以吃掉所有的钻石. 题解:对于某个位置上 ...

  3. css整理之-----------选择器

    背景 在20年初时总感觉自己的css 不够用,想把css 相关的东西整理下,去年一整年都比较忙,忙着就到2021了,今天趁着有点时间,先从选择器开始吧. 听说图片可以提升颜值.... 选择器 CSS选 ...

  4. 大规模数据爬取 -- Python

    Python书写爬虫,目的是爬取所有的个人商家商品信息及详情,并进行数据归类分析 整个工作流程图: 第一步:采用自动化的方式从前台页面获取所有的频道 from bs4 import Beautiful ...

  5. Nginx基础 - 通用优化配置文件

    [root@localhost ~]# vim /etc/nginx/nginx.conf user nginx; worker_processes auto; worker_cpu_affinity ...

  6. codeforces - 978D【思维】

    D. Almost Arithmetic Progression time limit per test 1 second memory limit per test 256 megabytes in ...

  7. Stack Overflow Skill IQ Testing All In One

    Stack Overflow Skill IQ Testing All In One Pluralsight IQ | Stack Overflow https://www.pluralsight.c ...

  8. HOC in Depth

    HOC in Depth Higher-Order Components https://reactjs.org/docs/higher-order-components.html 1. wrappe ...

  9. vue render html string

    vue render html string shit element ui render string array relativeShowConvert(data) { // log(`data` ...

  10. Chrome DevTools & console & filter warning

    Chrome DevTools & console & filter warning