오늘 두문제 올리고 자기...
하면할수록 업무를 원활히 할 수 있을거 같기도 하고... cpp를 사용하니까 뭔가 포인터를 이용한 문제를 많이 풀어보고 싶기도 하다.
https://leetcode.com/problems/valid-parentheses/
문제는 올바른 괄호 열고 닫기를 했는가!
원리는 아주 쉽다!
map을 이용해서 쌍을 만들어주고! 쌍이 맞으면 pop!, 그렇지 않으면 push!
마지막으로 전부다 했는데 비어있으면 true, 그렇지 않으면 false를 리턴하면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
class Solution {
public:
bool isValid(string s) {
bool answer = false;
map<char, char> pair;
pair['('] = ')';
pair['{'] = '}';
pair['['] = ']';
stack<char> t;
if(s.length() %2 == 1) return false;
t.push(s[0]);
for(int i=1;i<s.length();i++){
if(t.empty())
t.push(s[i]);
else if(pair[t.top()] != s[i])
t.push(s[i]);
else if(pair[t.top()] == s[i])
t.pop();
if(i == s.length() - 1 && t.empty())
return true;
}
return false;
}
};
|
cs |
Easy중에서도 쏘이지...
시간도 낫밷...!
169. Majority Element (C++) (0) | 2021.10.31 |
---|---|
804. Unique Morse Code Words (C++) (0) | 2021.10.31 |
202. Happy Number (C++) (0) | 2021.10.07 |
190. Reverse Bits (C++) (0) | 2021.10.07 |
119. Pascal's Triangle II (C++) (0) | 2021.10.05 |
댓글 영역