04. Reversing the Equation
The problem can be found at the following link: Question Link
My Approach
To reverse the given equation, I have used the following approach:
I utilized two stacks:
num
to store the numbers andop
to store the operators encountered.I iterated through the given string
str
character by character.If the current character
i
is not a digit (i.e., an operator), I pushed the accumulated strings
(which represents a number) into thenum
stack and pushed the operatori
into theop
stack. Then, I resets
to an empty string.If the current character
i
is a digit, I appended it to the strings
.After processing all the characters, I pushed the remaining accumulated string
s
into thenum
stack.Next, I initialized an empty string
s
to store the reversed equation.While the
op
stack is not empty, I popped the top element from both thenum
andop
stacks. I appended the popped number and operator alternately to the strings
.Finally, I appended the remaining number from the
num
stack to the strings
.I returned the reversed equation string
s
.
Time and Space Complexity
Time Complexity:
O(N)
, whereN
is the length of the given stringstr
. The algorithm iterates through each character ofstr
once.Space Complexity:
O(N)
, whereN
is the length of the given stringstr
. This is because the algorithm uses two stacks to store the numbers and operators encountered.
Code (C++)
Contribution and Support
For discussions, questions, or doubts related to this solution, please visit our discussion section. We welcome your input and aim to foster a collaborative learning environment.
If you find this solution helpful, consider supporting us by giving a ⭐ star
to the getlost01/gfg-potd repository.
Last updated