博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CCF201803-3-URL映射
阅读量:4995 次
发布时间:2019-06-12

本文共 1384 字,大约阅读时间需要 4 分钟。

链接:http://118.190.20.162/view.page?gpid=T71

思路:    按要求顺序写出n、m、p[i]、r[i]

    接着每次输入一行匹配

    将匹配的两个字符串进行切割,存入数组,逐一比对,符合要求就输出

    题目本身不难吧,觉得复杂,不敢做,一点一点想清楚也挺舒服的,具体看代码吧,写了注释

#include 
#include
#include
#include
#include
#include
using namespace std; string p[150],r[150]; void split(vector
&v, string s) { //cout<<"s:"<
<
::iterator it=v.begin();it!=v.end();it++) // cout<<*it<
'9') { t=1; break; } } if(t==1) return "
"; else return "
"; } vector
ans; bool match(string s1,string s2)//s1是规则,s2是要对比的 { ans.clear();//每次将存储答案的数组清零 vector
r1,m1; int l=1; split(r1,s1);//切割字符串 split(m1,s2);//r1是规则,m1是查询字符串数组 //cout<
<
<
<
m1.size())// return false; if(r1.size()
=1) if(r1[r1.size()-1]!="
") return false; if(r1.size()==0&&m1.size()!=0) return false; for(int i=0;i
") { ans.push_back(s2.substr(l,s2.size()-l)); return true; } else if(r1[i]==judge(m1[i])) { ans.push_back(m1[i]); l=l+m1[i].size()+1; } else return false; } if(s1[s1.size()-1]=='/'&&s2[s2.size()-1]!='/') return false; if(s1[s1.size()-1]!='/'&&s2[s2.size()-1]=='/') return false; return true; } int convert(string s) { int ans=0; for(int i=0;i
>p[i]>>r[i]; } for(int i=0;i
>s; int flag=0; int j; for(j=0;j
") cout<<" "<
AC Code

 

转载于:https://www.cnblogs.com/Rysort/p/9610741.html

你可能感兴趣的文章
Python 学习笔记之——用 sklearn 对数据进行预处理
查看>>
0 window DOS窗口常用指令
查看>>
c++11特性与cocos2d-x 3.0之std::bind与std::function
查看>>
ARC078 D.Fennec VS. Snuke(树上博弈)
查看>>
VIM学习笔记一
查看>>
面向对象第四单元总结
查看>>
同源策略,Jsonp实现跨域
查看>>
二叉搜索树的后序遍历序列
查看>>
纯C#的ini格式配置文件读写
查看>>
每日分享
查看>>
【干货】大数据框架整理
查看>>
年轻人,能用钱解决的,绝不要花时间(转)
查看>>
python2.7.X 升级至Python3.6.X
查看>>
VS调试方法
查看>>
jquery拖拽实现UI设计组件
查看>>
javamail模拟邮箱功能获取邮件内容-中级实战篇【内容|附件下载方法】(javamail API电子邮件实例)...
查看>>
白话排序算法--冒泡排序
查看>>
imx6 18bit display
查看>>
Spring静态属性注入
查看>>
实验10:指针2
查看>>