【CCF】URL映射 模拟
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
#include<queue>
#include<map>
using namespace std;
int n,m;
const int maxn=1e2+;
string rule[maxn],value[maxn];
string s,t;
int lens,lent;
bool legal(){
for(int i=;i<lent;i++){
if(t[i]>='a'&&t[i]<='z') continue;
if(t[i]>='A'&&t[i]<='Z') continue;
if(t[i]>='.'||t[i]=='-'&&t[i]=='_') continue;
return false;
}
return true;
}
bool check(){
lens=s.length();
int i=,j=;
while(i<lens&&j<lent){
if(s[i]==t[j]){
i++;
j++;
continue;
}
if(s[i]!='<') return false;
if(s[i+]=='i'){
i+=;
while(j<lent){
if(t[j]>=''&&t[j]<='') j++;
else if(t[j]=='/') break;
else return false;
}
}else if(s[i+]=='s'){
i+=;
while(j<lent){
if(t[j]!='/') j++;
else break;
}
}else if(s[i+]=='p'){
return true;
}
}
if(i!=lens||j!=lent) return false;
return true;
}
void print(int id){
cout<<value[id];
int i=,j=;
while(i<lens&&j<lent){
if(s[i]==t[j]){
i++;
j++;
continue;
}
if(s[i+]=='i'){
cout<<" ";
i+=;
int flag=;
while(j<lent){
if(t[j]=='/') break;
if(flag&&t[j]==''){
j++;
continue;
}
cout<<t[j];
flag=;
j++;
}
}else if(s[i+]=='s'){
i+=;
cout<<" ";
while(j<lent){
if(t[j]=='/') break;
cout<<t[j];
j++;
}
}else if(s[i+]=='p'){
cout<<" ";
while(j<lent){
cout<<t[j];
j++;
}
}
}
cout<<endl;
}
void work(){
lent=t.length();
if(!legal()){
printf("404\n");
return;
}
for(int i=;i<=n;i++){
s=rule[i];
if(check()){
print(i);
return;
}
}
printf("404\n");
return;
}
int main(){
while(~scanf("%d%d",&n,&m)){
for(int i=;i<=n;i++){
cin>>rule[i]>>value[i];
}
for(int i=;i<=m;i++){
cin>>t;
work();
}
}
return ;
}
【CCF】URL映射 模拟的更多相关文章
- CCF(URL映射:80分):字符串处理+模拟
URL映射 CCF201803-3 #include<iostream> #include<cstdio> #include<cstring> #include&l ...
- 2-字符串模拟- URL映射
问题描述 试题编号: 201803-3 试题名称: URL映射 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 URL 映射是诸如 Django.Ruby on Rails 等 ...
- CCF 201803-3 URL映射
CCF 201803-3 URL映射 试题编号: 201803-3 试题名称: URL映射 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 URL 映射是诸如 Django. ...
- CCF CSP 201803-3 URL映射
转载自 https://blog.csdn.net/tigerisland45/article/details/81697594 /* CCF201803-3 URL映射 */ #include &l ...
- url映射 ccf (Java正则表达式80分解法)
问题描述 试题编号: 201803-3 试题名称: URL映射 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 URL 映射是诸如 Django.Ruby on Rails 等 ...
- ASP.NET MVC 5 Web编程2 -- URL映射(路由原理)
本章将讲述ASP.NET MVC5 的路由原理,即URL映射机制. 简单点就是解释:为什么MVC在浏览器输入地址就能访问到类(或类中的方法)?这是怎么做到的?我自己可以通过.NET写出一个自己的MVC ...
- MVC 5 Web编程2 -- URL映射
ASP.NET MVC 5 Web编程2 -- URL映射(路由原理) 2015-02-12 08:50 by hangwei, 704 阅读, 5 评论, 收藏, 编辑 本章将讲述ASP.NET M ...
- urlMappings与URL映射
此配置节的作用就是往Web程序中添加URL的映射,从而达到用户访问映射后的URL(如/Page/AAA)也能访问到源URL(如/Page/PageAAA.aspx)的效果.这也是URL映射本来的作用. ...
- django中“url映射规则”和“服务端响应顺序”
1.django搜索路径 使用 import 语句时,Python 所查找的系统目录清单. 查看方式: import sys print sys.path ...
随机推荐
- java调用摄像头了
http://www.cnblogs.com/cnweiblog/p/4602207.html
- 常用的ES6语法
1. let.const 和 block 作用域 let 允许创建块级作用域,ES6 推荐在函数中使用 let 定义变量,而非 var: var a = 2; { let a = 3; console ...
- 牛客NOIP提高组R1 A中位数(二分)
题意 题目链接 Sol 很神仙的题目啊,考场上只会$n^2$的暴力.. 考虑直接二分一个$mid$,我们来判断最终答案是否可能大于$x$. 判断的时候记录一下前缀最小值即可, 设$s[i]$表示$1- ...
- Django项目中"expected str, bytes or os.PathLike object, not list"错误解决:
对于这个错误,也在于自己对django基础的掌握不是很牢固,忽略了MEDIA_ROOT的类型是string,而不是list. 错误的写法: MEDIA_ROOT = [ os.path.join(BA ...
- 可怕的万圣节 Linux 命令
虽然现在不是万圣节,也可以关注一下 Linux 可怕的一面.什么命令可能会显示鬼.巫婆和僵尸的图像?哪个会鼓励"不给糖果就捣蛋"的精神? crypt 好吧,我们一直看到 crypt ...
- JZOJ 4725. 质数序列
Description 由于去NOI的火车“堵”了数不清时间,小Z和小D打完ETG,闲着无聊开始看今年的JSOI省选题,并尝试着修改题目:对于一个长度为L ≥ 2的序列,X:x1,x2,...,xL ...
- bootstrap-图片样式记录
//三种形状<img src=”img/pic.png” alt=”图片” class=”img-rounded” /><img src=”img/pic.png” alt=”图片” ...
- Python学习笔记:math模块(数学),random模块(随机数)
math模块 math模块用于数学意义上的一些计算,常用的方法有: math.pi:PI的值(3.141592653589793). math.floor(x):返回一个小于等于x的最大整数(浮点类型 ...
- Python学习笔记:装饰器
Python 装饰器的基本概念和应用 代码编写要遵循开放封闭原则,虽然在这个原则是用的面向对象开发,但是也适用于函数式编程,简单来说,它规定已经实现的功能代码不允许被修改,但可以被扩展,即: 封闭:已 ...
- SDRAM学习(一)之刷新心得
本篇博文共有两种刷新方式 SDRAM数据手册给出每隔64ms就要将所有行刷新一遍, 因此每隔64_000_000 ns/2^12=15625ns 就要刷新一次.(因为一个L-Bank的行是12位,所以 ...