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. C - Last Digit

    Description The function f(n, k) is defined by f(n, k) = 1k + 2k + 3k +...+ nk. If you know the valu ...

  2. hdu 4521 小明系列问题——小明序列 线段树

    题意: 给你一个长度为n的序列v,你需要输出最长上升子序列,且要保证你选的两个相邻元素之间在原数组中的位置之差大于d 题解: 这个就是原来求最长上升子序列的加强版,这个思路和最长上升子序列的差不多   ...

  3. AC自动机算法 && 例题

    参考链接: https://blog.csdn.net/bestsort/article/details/82947639#commentBox https://blog.csdn.net/niush ...

  4. [视频] 使用 JavaCV 来显示和保存来自摄像头的视频

    目录 JavaCV 预览本机摄像头视频图像的简单实现 预览的同时,保存为FLV文件 JavaCV javacv开发包是用于支持java多媒体开发的一套开发包,可以适用于本地多媒体(音视频)调用以及音视 ...

  5. 创建AVL树,插入,删除,输出Kth Min

    https://github.com/TouwaErioH/subjects/tree/master/C%2B%2B/PA2 没有考虑重复键,可以在结构体内加一个int times. 没有考虑删除不存 ...

  6. 图解算法——KMP算法

    KMP算法 解决的是包,含问题. Str1中是否包含str2,如果包含,则返回子串开始位置.否则返回-1. 示例1: Str1:abcd123def Str2:123d 暴力法: 从str1的第一个字 ...

  7. URAL 1132 Square Root(二次剩余定理)题解

    题意: 求\(x^2 \equiv a \mod p\) 的所有整数解 思路: 二次剩余定理求解. 参考: 二次剩余Cipolla's algorithm学习笔记 板子: //二次剩余,p是奇质数 l ...

  8. Building an IMAP Email Client with PHP

    1 Building an IMAP Email Client with PHP http://www.toptal.com/php/building-an-imap-email-client-wit ...

  9. free HTTPS for website! & SSL & TLS & HTTP/2 & SPDY

    HTTPS for website! 1 1 1 # OK (bugs === main domain temporarily OK) # sub domain allways OK! # partl ...

  10. chrome devtools dark mode

    chrome devtools dark mode default dark mode https://medium.com/@eshwaren/dark-theme-for-chrome-devel ...