美文网首页
有效的括号

有效的括号

作者: WikiPine | 来源:发表于2019-02-18 14:56 被阅读0次

题目来源:https://leetcode-cn.com/problems/valid-parentheses/

题目
给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。

注意: 空字符串可被认为是有效字符串。

示例

输入: "()"
输出: true

输入: "()[]{}"
输出: true

输入: "(]"
输出: false

输入: "([)]"
输出: false

输入: "{[]}"
输出: true

分析
要想成立,必须要是偶数,另外 2n+1 位是第 n 位 的闭合位置

解答

function isValid($s) {
    $string_arr = array(
        '(' => -1,
        ')' => 1,
        '{' => -2,
        '}' => 2,
        '[' => -3,
        ']' => 3,
        '$' => 0
    );
    $length = strlen($s);
    if($length % 2 != 0) return false;
    for($i = 0; $i < $length; $i++){
        if($s[$i] == '$') continue;
        $first = $string_arr[$s[$i]];
        $is_true = false;
        for($j = $i + 1; $j < $length; $j = $j + 2){
            if($first + $string_arr[$s[$j]] == 0){
                $is_true = true;
                $s = substr_replace($s,"$",$j,1);
                $s = substr_replace($s,"$",0,1);
                break;
            }
        }
        if(!$is_true) return false;
    }
    return true;
}

end
执行效率貌似不高,暂未想到更优解法。

相关文章

  • 回溯算法和深度优先搜索(二)

    先看一道题目: 括号生成。 输入一个整数 ,罗列出所有有效的括号组合。有效的括号组合是指 左括号开始,右括号结束,...

  • 括号生成 (有效括号)

    题目 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例: 输入...

  • 有效括号

    题目描述 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串...

  • 有效括号

    import java.util.*; /** 给定一个只包括 '(',')','{','}','[',']' 的...

  • 有效括号

    题目 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。 有效字符串需...

  • 有效的括号

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

  • 有效的括号

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

  • 有效的括号

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

  • 有效的括号

    https://leetcode-cn.com/problems/valid-parentheses/descri...

  • 有效的括号

    题目描述 给定一个只包括‘(‘,’)’, ‘{‘,’}’, ‘[',']’的字符串,判断字符串是否有效有效字符串需...

网友评论

      本文标题:有效的括号

      本文链接:https://www.haomeiwen.com/subject/clmaeqtx.html