mirror of
https://github.com/devenperez/leetcode.git
synced 2026-06-15 09:57:09 +00:00
44 lines
864 B
Python
44 lines
864 B
Python
class Solution:
|
|
def makeGood(self, s: str) -> str:
|
|
"""
|
|
Complexities:
|
|
Time: O(n)
|
|
Space: O(n)
|
|
|
|
where n = len(s)
|
|
"""
|
|
|
|
# base case: len(s) == 1
|
|
if len(s) <= 1:
|
|
return s
|
|
|
|
|
|
|
|
stack = ""
|
|
for letter in s:
|
|
stack += letter
|
|
|
|
if len(stack) >= 2 and stack[-2] != stack[-1] and stack[-2].lower() == stack[-1].lower():
|
|
stack = stack[:-2]
|
|
|
|
return stack
|
|
|
|
|
|
|
|
|
|
"""
|
|
# iterate over all letters
|
|
# - compare s[i], s[i+1]
|
|
# - if I remove, look at s[i-1]
|
|
i = 0
|
|
while i <= len(s) - 2:
|
|
if s[i] != s[i + 1] and s[i].lower() == s[i + 1].lower():
|
|
s = s[:i] + s[i+2:]
|
|
|
|
if i > 0:
|
|
i -= 1
|
|
else:
|
|
i += 1
|
|
|
|
return s
|
|
""" |