CCF CSP 201803-3 URL映射
2024-10-10 17:27:59
转载自 https://blog.csdn.net/tigerisland45/article/details/81697594
/* CCF201803-3 URL映射 */ #include <iostream>
#include <ctype.h> using namespace std; const int N = ;
string p[N], r[N], s; bool match(string& s, string& t, bool flag)
{
int lent = t.size();
int lens = s.size();
int ps = , pt = ;
while(ps < lens && pt < lent) {
if(t[pt] == s[ps]) {
ps++, pt++;
} else {
// 匹配<xxx>
if(t[pt++] != '<')
return false;
if(flag)
cout << ' '; if(t[pt] == 'i') {
// 匹配<int>
bool ok = false;
while(s[ps] && isdigit(s[ps])) {
if(s[ps] != '')//去掉前导零
ok = true;
if(flag && ok)
cout << s[ps];
ps++;
}
if(!ok)
return false;
pt += ;
} else if(t[pt] == 's') {
// 匹配<str>
bool ok = false;
while(s[ps] && s[ps] != '/') {
ok = true;
if(flag)
cout << s[ps];
ps++;
}
if(!ok)
return false;
pt += ;
} else if(t[pt] == 'p') {//如果合法的话,<path>一定已经是最后一个了
// 匹配<path>
if(flag)
while(s[ps])
cout << s[ps++];
return true;
}
}
} return pt == lent && ps == lens;
} int main()
{
int n, m;
cin >> n >> m;
for(int i = ; i < n; i++)
cin >> p[i] >> r[i]; for(int i = ; i < m; i++) {
cin >> s; bool flag = true;
for(int j = ; flag && j < n; j++)
if(match(s, p[j], false)) {//用了两次match,true的时候会输出
flag = false;
cout << r[j];
match(s, p[j], true);
} if(flag)
cout << "";
cout << endl;
} return ;
}
最新文章
- JAVA里的异常
- 在eclipse中将SVN项目check下来的正确步骤
- Perl Debug error: SetConsoleMode failed, LastError=|6|
- Jar mismatch! Fix your dependencies
- Android 源码 判断网络数据类型
- 打包python脚本为exe可执行文件-pyinstaller和cx_freeze示例
- Cadence关闭StartPage的方法
- C++基本要点复习--------coursera程序设计实习(PKU)的lecture notes
- UWP--MVVM简单计算器
- 基于Groovy应用程序的spring boot
- Android的stateListDrawable,layerDawable,clipdrawable,AnimationDarwable介绍-android学习之旅(五十五)
- Codeforces 1097G
- 从零开始学spring cloud(六) -------- Ribbon
- 2017《JAVA技术》预备作业-计科1502-19-何俏依
- Kong管理UI -kong-dashboard
- 【代码笔记】Web-JavaScript-JavaScript输出
- const与常量,傻傻分不清楚~
- console.log等不能打印全部数据/信息
- 超简易复制Model对象(为后续备忘录设计模式博文做铺垫)
- ASP.NET MVC中使用jQuery时的浏览器缓存问题
热门文章
- 菜鸡学C语言之寻根溯源
- C#数组--(一维数组,二维数组的声明,使用及遍历)
- spring cloud(五)熔断监控Hystrix Dashboard和Turbine
- mysql Access denied for user root @localhost (using password:YES)错误
- grunt,提示node不是内部命令也不是外部命令
- Java JTable视图窗口滚动并定位到某一行
- lxml 解析字符处理规则
- Python3+Appium安装使用教程
- day 02 python 基础
- 浮点型数据转整型的丢失精度问题(C++)