Attribute Parser | HeakerRank Solution

         Attribute Parser | HeakerRank Solution

                                       C++ 20

#include <cmath>

#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <sstream>
#include <map>
using namespace std;

int main()
  {
     int n, q,i;
     cin>>n>>q;
     string temp;
     
     vector<string> hrml;
     vector<string> quer;
     cin.ignore();
     for(i=0;i<n;i++)
   {
    getline(cin,temp);
    hrml.push_back(temp);
  }
   for(i=0;i<q;i++)
   {
    getline(cin,temp);
    quer.push_back(temp);
  }
   map<string, string> m;
   vector<string> tag;
   for(i=0;i<n;i++)
   {
        temp=hrml[i];
        temp.erase(remove(temp.begin(), temp.end(), '\"' ),temp.end());
        temp.erase(remove(temp.begin(), temp.end(), '>' ),temp.end());
        if(temp.substr(0,2)=="</")
    {
        tag.pop_back();
    }
    else
    {
        stringstream ss;
        ss.str("");
        ss<<temp;
        string t1,p1,v1;
        char ch;
        ss>>ch>>t1>>p1>>ch>>v1;
        string temp1="";
        if(tag.size()>0)
        {
            temp1=*tag.rbegin();
            temp1=temp1+"."+t1;
        }
        else
            temp1=t1;
        tag.push_back(temp1);
        m[*tag.rbegin()+"~"+p1]=v1;
        while(ss)
        {
            ss>>p1>>ch>>v1;
            m[*tag.rbegin()+"~"+p1]=v1;
        }
    }
}
    for(i=0;i<q;i++){
        if (m.find(quer[i]) == m.end())
            cout << "Not Found!\n";
        else
            cout<<m[quer[i]]<<endl;
    }
  
return 0;
  }





Comments

Popular posts from this blog

Basic Data types | HackerRank Solution...

There are three people sitting in a room - Alice, Bob, and Charlie. They need to decide on the temperature to set on the air conditioner. Everyone has a demand each:

Chef has recently introduced a feature which allows you to open any user’s submitted code (not just your own), and ask an AI to explain that code in English. For example, you can go to https://www.codechef.com/viewsolution/70530506 and click on "Analyse This Code".