I hate Even Subarrays (HACKEREARTH)
You are given a binary string, (string which contains 0's and 1's), You have to perform several operations on this string, in one operation choose a non-empty even length substring containing only 0's or only 1's and remove it from the string.
Your goal is to minimize the final length of the string after performing several operations.It is possible that the final string may become empty, in that case print "KHALI" without quotes.
And it can be proved that there is always an unique string with minimal length after performing the operations.
Input:
- First line of input contains an intger T denoting number of testcases.
- Next T lines of input contains a binary string S.
Output:
- for each testcase print the required minimal string.
Constraints:
- 1 <= T <= 10
- 1 <= |S| <= 105
Explanation
for the first test case, first remove substring "00", now string will become "1011", now remove "11", hence "10" will be the resulting string.
SOLUTION:
for _ in range(int(input())):
arr = [int(i) for i in input()]
stack = []
for i in arr:
if len(stack) > 0 and i == stack[0]:
stack.pop(0)
else:
stack.insert(0, i)
stack.reverse()
if len(stack) == 0:
print('KHALI')
else:
for i in stack:
print(i, end = '')
print()
Comments
Post a Comment