하루의 쉼터

[LeetCode] 20. Valid Parentheses 본문

Coding Test/LeetCode

[LeetCode] 20. Valid Parentheses

Changun An 2020. 11. 17. 02:12
반응형

Question :
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
Example 4:Input: s = "([)]"Output: false
Example 5:Input: s = "{[]}"Output: true

Constraints:

    1 <= s.length <= 104
    s consists of parentheses only '()[]{}'.

Solution.h

#include<iostream>

#include<stack>
class Solution
{
private :
    std::stack<char> stack_data;
public :
    bool isValid(std::string s);
};

Solution.cpp

#include "Solution.h"

bool Solution::isValid(std::string s)
{
	
	if (s.size() == 0)
		return true;
	else {
		for (int loop_i = 0; loop_i < s.size(); loop_i++) {
			if (s[loop_i] == '(' || s[loop_i] == '{' || s[loop_i] == '[') {
				stack_data.push(s[loop_i]);
			}
			else {
				if (stack_data.size() == 0)
					return false;

				switch (s[loop_i])
				{
				case ')':
					if (stack_data.top() == '(') {
						stack_data.pop();
						break;
					}
					else
						return false;
				case '}':
					if (stack_data.top() == '{') {
						stack_data.pop();
						break;
					}
					else
						return false;
				case ']':
					if (stack_data.top() == '[') {
						stack_data.pop();
						break;
					}
					else
						return false;
				default:
					break;
				}
			}
		}
		return (stack_data.size() == 0) ? true : false;
	}
}

Result :

 

Git Hub :

github.com/Anchangun

 

Anchangun - Overview

어제보다 나은 오늘. Anchangun has 3 repositories available. Follow their code on GitHub.

github.com

반응형

'Coding Test > LeetCode' 카테고리의 다른 글

[LeetCode] 53. Maximum Subarray  (0) 2020.11.30
[LeetCode] 21. Merge Two Sorted Lists  (0) 2020.11.24
[LeetCode] 136. Single Number  (0) 2020.11.23
[LeetCode] 1. Two Sum  (0) 2020.11.17
[LeetCode] 288. Add Digits  (0) 2020.11.16
Comments