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 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

 

SAMPLE INPUT
 
2
101001
1001
SAMPLE OUTPUT
 
10
KHALI
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

Popular posts from this blog

Short Notes Of computer Network

Short Note of Data Structure

Implement stack using array