[leetcode] 20.Valid Parentheses

来源:互联网 发布:10221淘宝 编辑:程序博客网 时间:2024/04/29 04:31

题目:
Given a string containing just the characters ‘(‘, ‘)’, ‘{‘, ‘}’, ‘[’ and ‘]’, determine if the input string is valid.

The brackets must close in the correct order, “()” and “()[]{}” are all valid but “(]” and “([)]” are not.
题意:
给定一个字符串,里面包含了’(‘, ‘)’, ‘{‘, ‘}’, ‘[’ , ‘]’。查看这个字符串是否是合法的。像这就是合法的,[(])就是不合法的。
思路:
使用栈存放符号,遇到左括号就入栈,遇到右括号就查看是否与栈顶的左括号相匹配。
代码如下:

class Solution {public:    bool isValid(string s) {        if(s.empty())return true;        stack<char> signs;        for(auto c : s) {            switch(c) {                case '(':signs.push(c);break;                case '[':signs.push(c);break;                case '{':signs.push(c);break;                case ')':{                    if(signs.empty() || signs.top() != '(')return false;                    signs.pop();                    break;                }                case ']':{                    if(signs.empty() || signs.top() != '[')return false;                    signs.pop();                    break;                }                case '}':{                    if(signs.empty() || signs.top() != '{')return false;                    signs.pop();                    break;                }            }        }        return signs.empty();    }};
0 0
原创粉丝点击