In this post, we will see the solution of the Python Coding Question which is already asked in the TCS NQT Exam.
Problem Statement: A manufacturing company is manufacturing a new collection of curtains. The curtains are of two colors Red(R) and black (B). The curtains color is represented as a string(string) consisting of R’s and B’s of length N.Then, they are packed (substring) into L number of curtains in each box.The box with the maximum number of ‘Red’ (R) color curtains is labeled. The task here is to find the number of ‘Red’ color curtains in the labeled box.
Note : If ‘L’ is not a multiple of N, the remaining number of curtains should be considered as a substring too.In simple words, after dividing the curtains in sets of ‘L’, any curtains left will be another set(refer example 1)
Example 1: Input: BBBRRRBRBR -> Value of string 3 -> Value of L Output: 3 -> Maximum number of R’s Explanation: From the input given above. Dividing the string into group of 3 characters each Set 1: {B,B,B} Set 2: {R,R,R} Set 3: {B,R,B} Set 4: {R} -> leftover characters also as taken as another set Among all the sets, Set 2 has more number of R’s. The number of R’s in set 2 is 3. Hence, the output is 3. Example 2: Input: RBBBRRBBB -> Value of string 5 -> Value of L Output: 2 -> Maximum number of R’s Explanation: From the input given above, Dividing the string into groups of 5 characters each. Set 1: {R,B,B,B,B} Set 2: {R,R,B,B,B} Among both the sets, set 2 has more number of R’s. The number of R’s in set 2 is 2. Hence, the output is 2. Constraints: 1<=L<=10 1<=N<=50
The input format for testing. The candidate has to write the code to accept two inputs separated by a new line.
First input- Accept string that contains character R and B only
Second input- Accept value for N(Positive integer number)
The output format for testing. The output should be a +ve integer number of print the message (if any) given in the problem statement. (Check the output given in Example 1 and Example 2).
Solution:
# taking inputs L = int(input()) string = input() # initialising max_num_red, count_red = 0, 0 # iterating through each character for var in range(len(string)) : # updating the max value based on substring completion if var % L == 0: max_num_red = max(max_num_red, count_red) count_red = 0 # check for red colour if true # then increment the value by one if string[var] == 'R' : count_red += 1 # updating the maximum value max_num_red = max(max_num_red, count_red) print(max_num_red)
Output:
3 BBBRRRBRBR 3
Time Complexity: O(N)
Space Complexity: O(1)