반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 | 29 | 30 |
Tags
- 자료 구조
- 연결리스트 중복제거
- LeetCode 83 c언어
- 사칙연산
- 시뮬레이션
- 조합론
- 임의 정밀도 / 큰 수 연산
- 별 찍기
- 해시를 사용한 집합과 맵
- 큰 수 연산
- KMP알고리즘
- 정렬
- 다이나믹 프로그래밍
- 연결리스트 정렬
- 유클리드 호제법
- 프로그래머스
- 실패함수
- 브루트포스 알고리즘
- Queue
- 수학
- LeetCode 83번
- 문자열제곱
- 큐
- 문자열
- 이분 탐색
- 스택
- 정수론
- 구현
- 재귀
- LeetCode Remove Duplicates from Sorted List in c
Archives
- Today
- Total
hahn
[LeetCode - C] 20. Valid Parentheses 본문
728x90
반응형
Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
An input string is valid if:
- Open brackets must be closed by the same type of brackets.
- Open brackets must be closed in the correct order.
Example 1:
Input: s = "()"
Output: true
Example 2:
Input: s = "()[]{}"
Output: true
Example 3:
Input: s = "(]"
Output: false
Constraints:
- 1 <= s.length <= 104
- s consists of parentheses only '()[]{}'.
Solution 1
stack을 이용한 방법
여는 괄호는 push(여는 괄호)한다.
닫는 괄호는 pop()한 것과 짝을 맞춰본다.
모든 문자 확인 후 stack이 비어있다면 true
채점이 계속 이상하게 되길래 discuss 확인해보니
전역 변수 선언해둬서 tc를 돌리는데 영향을 주나 보다.
char stk[10000];
int top = -1;
void push(char c)
{
stk[++top] = c;
return 0;
}
char pop(void)
{
if (top < 0)
return 0;
return stk[top--];
}
void isEmpty(void)
{
top = -1;
return 0;
}
bool isValid(char *s)
{
char c;
isEmpty();
while (*s)
{
if (*s == '(' || *s == '{' || *s == '[')
push(*s);
else if (*s == ')' || *s == '}' || *s == ']')
{
c = pop();
if (!((*s == ')' && c == '(') || (*s == '}' && c == '{') || (*s == ']' && c == '[')))
return false;
}
s++;
}
return (top == -1);
}
총평
처음에는 조건 처리하여 해결하려 했는데
생각해보니 스택 이용하면 된다.
728x90
반응형
'코딩테스트 연습 > LeetCode(C - Easy)' 카테고리의 다른 글
[LeetCode - C] 26. Remove Duplicates from Sorted Array (0) | 2022.03.25 |
---|---|
[LeetCode - C] 21. Merge Two Sorted Lists (0) | 2022.03.24 |
[LeetCode - C] 14. Longest Common Prefix (0) | 2022.03.23 |
[LeetCode - C] 13. Roman to Integer (0) | 2022.03.22 |
[LeetCode - C] 9. Palindrome Number (0) | 2022.03.22 |