Use of map in STL || Gym 101653U Top 25

 A set of strings gives two permutations,

Find the minimum number of groups such as

A     A

B     C

C    D

D    B

AND AND

divided into 3 groups

A

B C D

E

i.e. 1 3 1

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <queue>
#include <algorithm>
#include <string>
#include <map>
using namespace std;
map <string, int> maps;
int main()
{
    int T;
    cin >> T;
    while(T--)
    {
        int n;
        //char s[11];
        cin >> n;
        maps.clear();
        string s;
        for(int i = 0; i < n; i++)
        {
            cin >> s;
             // maps.insert(pair<string, int>(s, i)); 
            maps[s] = i; // map maps an s to an i 
        }
         int ans = 0 , idx = 0 ;
         for ( int i = 0 ; i < n; i++ )
        {
            cin >> s;
            /*map<string, int>::iterator iter;
            iter = maps.find(s);
            int t = iter -> second;*/
            int t = maps[s];
            idx = max(idx, t);
            ans++;
            if(idx == i) printf("%d ", ans), ans = 0;
        }
        printf("\n");
    }
    return 0;
}

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325163670&siteId=291194637