Leetcode 第20题: Valid Parentheses(有效的括号)


题目地址:Valid Parentheses


 

题目简介:

给定一个只包含字符'('')''{''}''[' 和 ']'的字符串,判断字符串是否有效。有效的字符串需要满足:

  1. 左括号必须用相同的右括号闭合;
  2. 左括号必须以正确的顺序闭合。
  3. 空字符串认为是合法的
Example 1:

Input: "()"
Output: true
Example 2:

Input: "()[]{}"
Output: true
Example 3:

Input: "(]"
Output: false
Example 4:

Input: "([)]"
Output: false
Example 5:

Input: "{[]}"
Output: true

 


题目解析:比较经典的栈的使用。

c++代码:

class Solution {
public:
    bool isValid(string s) {
        if (s.length() % 2)
            return false;
        else if (s.length() == 0)
            return true;

        vector<char> v;
        for (int i = 0;i < s.length();i++)
        {
            if (s[i] == '(' || s[i] == '[' || s[i] == '{')
            {
                v.push_back(s[i]);
            }
            else
            {
                if (v.empty())
                    return false;
                char temp = v[v.size() - 1];
                if ((s[i] == ')' && temp != '(') || (s[i] == ']' && temp != '[') || (s[i] == '}' && temp != '{'))
                    return false;
                else
                    v.pop_back();
            }
        }
        if (v.empty())
            return true;
        return false;
    }
};

Python版本:

class Solution:
    def isValid(self, s: str) -> bool:
        if (len(s) % 2):
            return False;
        elif (len(s) == 0):
            return True;

        list = []
        for i in range(len(s)):
            if (s[i] == '(' or s[i] == '[' or s[i] == '{'):
                list.append(s[i])
            else:
                if (len(list) == 0):
                    return False;
                temp = list[len(list)- 1]
                if ((s[i] == ')' and temp != '(') or (s[i] == ']' and temp != '[') or (s[i] == '}' and temp != '{')):
                    return False;
                else:
                    list.pop(len(list)- 1);
        
        
        if (len(list) == 0):
            return True
        return False

猜你喜欢

转载自blog.csdn.net/chao_shine/article/details/88413470
今日推荐