本文共 1086 字,大约阅读时间需要 3 分钟。
input11 5html..head....title..body....h1....p #subtitle....div #main......h2......p #one......div........p #twop#subtitleh3div pdiv div p
output
3 6 9 111 602 9 111 11
简析:
这道题的题目很长,但是涅,明白它的中心意思。开始输入一个n和一个m,n(相当于)表示n个目录,m相当于有m个需要查询目录。接下来输出你的查询结果,如果没有这个目录就输出0,如果有这个目录,因为标签不唯一,所以返回多个目录,输出目录的个数和这些目录的位置。所以这道题需要注意的是当查询它的子目录时,比如A B,那么就要选择第一个A后面的那些B,如果是A A B,就要选择第二个A后面的B然后那么解题,因为标签大小写不分,所以直接把它们全部换为小写,定义2个容器,一个用来存答案,为int类型。另一个用来存字符串,定义为string类型又..代表一个缩进,那么我们记录下每一行的缩进,对该字符串做记录,具体代码如下:
Codes
#include#include #include #include using namespace std;int n,m;string s;struct ele{ string tag,id;//标签 int sj;//缩进 }e[110];bool solve(ele x[],int &y,int &z,string str){ for(int h=y;h>0;h--){ if(x[h].sj >n>>m;getchar();//n行,m条目录 for(int i=1;i<=n;i++){ getline(cin,s); int nsj=0,p0=0,p1=0; for(int j=0;j v0;vector v1; gets(ch);char *sp=strtok(ch," "); while(sp){ v0.push_back(sp); sp=strtok(NULL," "); } int tmp=v0.size(); for(int j=0;j =0){ if(!solve(e,st,nsj,v0[l])) break; l--; } if(l<0) v1.push_back(j); } } cout<
转载地址:http://jcwzi.baihongyu.com/