Problem of the day
You are the receptionist at a hotel which has 10 floors, numbered from 0 to 9 and each floor has 26 rooms named from ‘A’ to ‘Z’. Being a receptionist your task is to handle booking queries.
You get booking queries in the form of strings of size 3 where 1st character is ‘+’ means room is booked, or ‘-’ means room is freed. Second character represents the floor of the room i.e, ‘0’ to ‘9’. Third character represents the room name i.e, ‘A’ to ‘Z’.
On booking of each room you collect 1 coin from the customer. After the end of all the booking queries you have to count the number of coins you collected.
You may assume that the list describes a correct sequence of bookings in chronological order i.e., only free rooms can be booked, and only booked rooms can be freed.
For Example:-
Consider booking queries to be ["+1A", "+3E", "-1A", "+4F", "+1A", "-3E"]
+1A: Room A on the 1st floor is booked and you collected 1 coin.
+3E: Room E on the 3rd floor is booked and you collected 1 coin.
-1A: Room A on the 1st floor is freed.
+4F: Room F on the 4th floor is booked and you collected 1 coin.
+1A: Room A on the 1st floor is booked and you collected 1 coin.
-3E: Room E on the 3rd floor is freed.
So you collected 4 coins.
The first line of input contains an integer ‘T’ denoting the number of test cases.
The first line of each test case contains an integer ‘N’ representing the number of queries.
The second line of each test case contains N space-separated strings representing booking queries.
Output format :
For each test case, return an integer denoting the count of coins you collected.
Note:
You don’t need to print anything; it has already been taken care of. Just implement the given function.
1 <= T <= 10^2
0 <= N <= 6*10^2
|query.length| = 3
Time Limit: 1 sec
2
6
+1A +3E -1A +4F +1A -3E
3
+0A +0B +0C
4
3
Test Case 1: Please refer to the example above.
Test Case 2: Room 0A, 0B & 0C is booked so we collected 3 coins.
2
4
+8D -8D +8D -8D
7
+3C +2B +7K -2B +6C -3C +5S
2
5