class Solution:
def makeGood(self, s: str) -> str:
n = len(s)
i = 0
while i < n:
if i and s[i] != s[i - 1] and s[i].lower() == s[i - 1].lower():
s = s[:i - 1] + s[i + 1:]
n -= 2
i -= 2
i += 1
return sclass Solution:
def makeGood(self, s: str) -> str:
def lower(c):
if ord(c) < ord('a'):
return chr(ord('a') + ord(c) - ord('A'))
return c
stack = []
i = 0
while i < len(s):
if stack and stack[-1] != s[i] and lower(stack[-1]) == lower(s[i]):
stack.pop()
else:
stack.append(s[i])
i += 1
return "".join(stack)class Solution:
def makeGood(self, s: str) -> str:
stack = []
for i in range(len(s)):
if stack and abs(ord(s[i]) - ord(stack[-1])) == 32:
stack.pop()
else:
stack.append(s[i])
return "".join(stack)class Solution:
def makeGood(self, s: str) -> str:
l = 0
s = list(s)
for r in range(len(s)):
if l > 0 and abs(ord(s[r]) - ord(s[l - 1])) == 32:
l -= 1
else:
s[l] = s[r]
l += 1
return ''.join(s[:l])