Problem of the day
You are given a string 'STR' consisting of lower and upper case characters. You need to remove the consecutive duplicates characters, and return the new string.
You don't have to print anything, it has already been taken care of. Just implement the given function.
The first and the only line of input contains a string 'STR' with no space in between the characters.
Output Format :
Print the final string after removing all the consecutive duplicates.
1 <= |S| <= 10^5
Where |S| represents the length of the string.
Time limit: 1 sec
aabccba
abcba
The string basically is a concatenation of [aa][b][cc][b][a] without considering the brackets. From each segment we need to choose only 1 character as all the characters are duplicates, therefore the final answer is [a][b][c][b][a] = abcba
xxxyyyzwwzzz
xyzwz
The string basically is a concatenation of [xxx][yyy][z][ww][zzz]. After choosing 1 character from each segment our final answer is [x][y][z][w][z] = xyzwz
Traverse the string from the right and store the characters in a stack.
Approach :
Algorithm:
O(N), where ‘N’ is the length of the string ‘STR'.
Since we are traversing over the string ‘STR’ and performing push operation on stack st which will take O(N) time. Again traversing over the stack st of length at max N and performing a pop operation which will take O(N) time. So overall time complexity will be O(N).
O(N), where ‘N’ is the length of the string ‘STR’.
Since the stack is used to store the characters of the string which will take O(N) space. So overall, space complexity is O(N).