Valid parentheses

一、问题描述

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.
Every close bracket has a corresponding open bracket of the same type.
 

Example 1:

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

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

Input: s = "(]"
Output: false

二、代码

符号匹配问题,选择用栈解决。

C++:

class Solution {
public:
    bool isValid(string s) {
        if(s.length() % 2 != 0) return false;
        stack stack_s;
        for (int i=0;i

python:利用replace()函数,代价较大。原因在于replace函数内部需要进行符号匹配。

class Solution(object):
    def isValid(self, s):
        """
        :type s: str
        :rtype: bool
        """
        while '()' in s or '{}' in s or '[]' in s:
            s = s.replace('()', '')
            s = s.replace('{}', '')
            s = s.replace('[]', '')
        return s == ''

你可能感兴趣的:(leetcode,leetcode,算法,python,数据结构)