Check if word is valid after substitutions
November 26, 2022
stackProblem URL: Check if word is valid after substitutions
We will use a stack to store the characters. We will iterate over the string. If the character is a
, we will push it to the stack. If the character is b
, we will check if the top of the stack is a
. If it is, we will pop the top of the stack and push b
to the stack. If it is not, we will push b
to the stack. If the character is c
, we will check if the top of the stack is b
. If it is, we will pop the top of the stack and push c
to the stack. If it is not, we will push c
to the stack. We will return true if the stack is empty.
class Solution:
def isValid(self, s: str) -> bool:
stack = []
for c in s:
if c == 'c':
if stack[-2:] != ['a', 'b']:
return False
stack.pop()
stack.pop()
else:
stack.append(c)
return not stack
Time complexity: O(n)
, n is the length of the string
Space complexity: O(n)