There are ‘N’ students standing in a row. Students are comprised of both girls and boys. Kevin is their teacher, who wants to pick a group of students that have an equal number of boys and girls. Kevin does not want to disturb the whole row and so, he only wants to pick students that are adjacent to each other. Formally, he can only pick a subarray, not a subsequence.
A complete row is given as an array of characters (as a string 'S'), you have to find the length of the longest such subarray which follows the above criteria.
The first line contains a single integer ‘T’ representing the number of test cases.
The first line of each test case will contain a single integer ‘N’ which represents the number of students in the row.
The second line of each test case contains a string ‘S’ of length ‘N’ which is comprised of two characters ‘G’ and ‘B’ where ‘B’ denotes Boy and ‘G’ denotes the Girl.
Output Format:
For each test case, print the length of the longest possible subarray that Kevin pick so that students are adjacent to each other.
Output for every test case will be printed in a separate line.
Note:
You don’t need to print anything; it has already been taken care of. Just implement the given function.
1 <= T <= 10
1 <= N <= 10000
S[ i ] = ‘B’ or ‘G’
Where S[i] denotes the ‘i-th’ character of the given string ‘s’.
Time limit: 1 sec
2
4
BGGB
5
BBBGB
4
2
In the first test case, Kevin can choose all students as there is exactly the same number of Boys and Girls in the row.
In the second test case, possible subarrays are “BG” and “GB”.
2
1
B
2
GG
0
0
In the first test case, there is no way to pick the required subarray.
In the second test case, there is no way to pick the required subarray.
Can you think of going through each subarray?
The basic idea of this approach is to loop through each subarray and find the length of the longest subarray which satisfies the property mentioned in the problem statement.
The steps are as follows:
O(N^3), where ‘N’ is the number of students in the row.
Since we are using three loops one inside the other and, so the overall time complexity will be O(N^3).
O(1).
Since we are not using any extra space, the overall space complexity will be O(1).