input :
output :
조건 :
Solution explain : Solution1
차이 - 1
만큼의 valid한 부분문자열이 존재할 것이다.class Solution:
def longestValidParentheses(self, s: str) -> int:
unpair_idxes = []
for i in range(len(s)):
item = s[i]
if item == ")":
if unpair_idxes and s[unpair_idxes[-1]] == "(":
unpair_idxes.pop()
continue
unpair_idxes.append(i)
ret = 0
prev = len(s)
for item in unpair_idxes[::-1]:
ret = max(ret, prev - 1 - item)
prev = item
ret = max(ret, prev)
return ret
s = Solution()
print(s.longestValidParentheses("())"))
print(s.longestValidParentheses(")()())"))
print(s.longestValidParentheses("()(()"))
잘 봤습니다. 좋은 글 감사합니다.