반응형
https://leetcode.com/problems/minimum-remove-to-make-valid-parentheses/
스택을 이용하여 풀이하였습니다.
문자열을 순회하면서 올바른 괄호 쌍을 표시해줍니다.
즉, 기존 문자열에 남게 되는 괄호 쌍들은 올바르지 않습니다.
해당 괄호 쌍들을 제외해주면 되었습니다.
class Solution {
public:
string minRemoveToMakeValid(string s) {
stack<int> stk;
for(int i=0; i<s.size(); i++) {
if(s[i] == '(') stk.push(i);
else if(s[i] == ')') {
if(stk.empty()) continue;
s[i] = 'C';
s[stk.top()] = 'O';
stk.pop();
}
}
string result = "";
for(int i=0; i<s.size(); i++) {
if(s[i] == '(' || s[i] == ')') continue;
result.push_back(s[i] == 'O' ? '(' : (s[i] == 'C' ? ')' : s[i]));
}
return result;
}
};
반응형
'Algorithm' 카테고리의 다른 글
LeetCode 895 : Maximum Frequency Stack (0) | 2022.03.19 |
---|---|
LeetCode 946 : Validate Stack Sequences (0) | 2022.03.16 |
LeetCode 20 : Valid Parentheses (0) | 2022.03.13 |
LeetCode 8 : String to Integer (atoi) (0) | 2022.03.12 |
LeetCode 7 : Reverse Integer (0) | 2022.03.12 |