我是靠谱客的博主 害怕麦片,最近开发中收集的这篇文章主要介绍【CCF】URL映射 模拟,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


1 #include<iostream>

2 #include<cstdio>

3 #include<cstring>

4 #include<string>

5 #include<cmath>

6 #include<algorithm>

7 #include<queue>

8 #include<map>

9 using namespace std;
 10 int n,m;
 11 const int maxn=1e2+2;
 12 string rule[maxn],value[maxn];
 13 string s,t;
 14 int lens,lent;
 15 bool legal(){
 16
for(int i=0;i<lent;i++){
 17
if(t[i]>='a'&&t[i]<='z') continue;
 18
if(t[i]>='A'&&t[i]<='Z') continue;
 19
if(t[i]>='.'||t[i]=='-'&&t[i]=='_') continue;
 20
return false;
 21 
}
 22
return true;
 23 }
 24 bool check(){
 25
lens=s.length();
 26
int i=0,j=0;
 27
while(i<lens&&j<lent){
 28
if(s[i]==t[j]){
 29
i++;
 30
j++;
 31
continue;
 32 
}
 33
if(s[i]!='<') return false;
 34
if(s[i+1]=='i'){
 35
i+=5;
 36
while(j<lent){
 37
if(t[j]>='0'&&t[j]<='9') j++;
 38
else if(t[j]=='/') break;
 39
else return false;
 40 
}
 41
}else if(s[i+1]=='s'){
 42
i+=5;
 43
while(j<lent){
 44
if(t[j]!='/') j++;
 45
else break;
 46 
}
 47
}else if(s[i+1]=='p'){
 48
return true;
 49 
}
 50 
}
 51
if(i!=lens||j!=lent) return false;
 52
return true;
 53 }
 54 void print(int id){
 55
cout<<value[id];
 56
int i=0,j=0;
 57
while(i<lens&&j<lent){
 58
if(s[i]==t[j]){
 59
i++;
 60
j++;
 61
continue;
 62 
}
 63
if(s[i+1]=='i'){
 64
cout<<" ";
 65
i+=5;
 66
int flag=1;
 67
while(j<lent){
 68
if(t[j]=='/') break;
 69
if(flag&&t[j]=='0'){
 70
j++;
 71
continue;
 72 
}
 73
cout<<t[j];
 74
flag=0;
 75
j++;
 76 
}
 77
}else if(s[i+1]=='s'){
 78
i+=5;
 79
cout<<" ";
 80
while(j<lent){
 81
if(t[j]=='/') break;
 82
cout<<t[j];
 83
j++;
 84 
}
 85
}else if(s[i+1]=='p'){
 86
cout<<" ";
 87
while(j<lent){
 88
cout<<t[j];
 89
j++;
 90 
}
 91 
}
 92 
}
 93
cout<<endl;
 94 }
 95 void work(){
 96
lent=t.length();
 97
if(!legal()){
 98
printf("404n");
 99
return;
100 
}
101
for(int i=1;i<=n;i++){
102
s=rule[i];
103
if(check()){
104 
print(i);
105
return;
106 
}
107 
}
108
printf("404n");
109
return;
110 }
111 int main(){
112
while(~scanf("%d%d",&n,&m)){
113
for(int i=1;i<=n;i++){
114
cin>>rule[i]>>value[i];
115 
}
116
for(int i=1;i<=m;i++){
117
cin>>t;
118 
work();
119 
}
120 
}
121
return 0;
122 }

 

转载于:https://www.cnblogs.com/itcsl/p/9203579.html

最后

以上就是害怕麦片为你收集整理的【CCF】URL映射 模拟的全部内容,希望文章能够帮你解决【CCF】URL映射 模拟所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部