We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
#include<iostream>#include<string>#include<map>#include<limits>#include<vector>usingnamespacestd;intmain(){/* Enter your code here. Read input from STDIN. Print output to STDOUT */map<string,string>tagValue;vector<string>wholetag;intn,q;cin>>n>>q;cin.ignore();for(intk=0;k<n;k++){stringline,attr,value,newtag,remtag;stringsubtag="";getline(cin,line);inti=1;if(bool(line[i]!='/')){intj=i;i++;while(line[i]!=' '&&line[i]!='>')i++;if(!wholetag.size()){subtag=line.substr(j,i-1);wholetag.push_back(subtag);}else{subtag='.'+line.substr(j,i-1);wholetag.push_back(subtag);}for(strings:wholetag){// cout<<s;newtag+=s;}j=i;while(line[i]!='>'){if(line[i]=='>'){break;}else{j=++i;while(line[i]!=' ')i++;attr=line.substr(j,i-j);while(line[i]!='\"')i++;j=++i;while(line[i]!='\"')i++;value=line.substr(j,i-j);tagValue[newtag+'~'+attr]=value;}i++;}}elseif(line[i]=='/'){stringclosedtag;i++;while(line[i]!=' '&&line[i]!='>')i++;closedtag=line.substr(2,i-2);if(wholetag.back()==closedtag||wholetag.back()==('.'+closedtag)){wholetag.pop_back();}}}vector<string>stream;for(intk=0;k<q;k++){stringquery,target;getline(cin,query);try{stringresult=tagValue.at(query);stream.push_back(result);}catch(constout_of_range&e){stream.push_back("Not Found!");}}for(stringre:stream){cout<<re<<endl;}return0;}
Cookie support is required to access HackerRank
Seems like cookies are disabled on this browser, please enable them to open this website
Attribute Parser
You are viewing a single comment's thread. Return to all comments →
My solution using vectors and map