前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode PHP 有效的括号

LeetCode PHP 有效的括号

作者头像
Meng小羽
发布2020-02-28 15:27:59
6860
发布2020-02-28 15:27:59
举报
文章被收录于专栏:Debug客栈Debug客栈

友情提示:此篇文章大约需要阅读 2分钟41秒,不足之处请多指教,感谢你的阅读。订阅本站

题目

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

有效字符串需满足:

  • 左括号必须用相同类型的右括号闭合。
  • 左括号必须以正确的顺序闭合。
  • 注意空字符串可被认为是有效字符串。
代码语言:javascript
复制
示例 1:
输入: "()"
输出: true

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

示例 3:
输入: "(]"
输出: false

示例 4:
输入: "([)]"
输出: false

示例 5:
输入: "{[]}"
输出: true

解析

这个题解是根据递归 + PHP 字符串功能函数 str_replace 函数来进行字符替换实现,具体实现如下:

  • 将传入字符串进行对应括号组合查找,若查找到则替换为空串,计算替换次数;
  • 判断替换次数,若没有替换进行判断此字符串是否为空,若为空则代表此字符串符合规则,否者则不符合;
  • 若替换次数不为0,则代表已经替换了一对,将剩余字符串再次传入该函数进行递归操作,直到没有替换的次数为止,并进行第二步判断是否符合规则,返回其结果。
str_replace 函数说明
代码语言:javascript
复制
str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) : mixed

该函数返回一个字符串或者数组。该字符串或数组是将 subject 中全部的 search 都被 replace 替换之后的结果。返回结果为字符串类型。

代码

代码语言:javascript
复制
<?php
class Solution {
    /**
     * @param String $s
     * @return Boolean
     */
    function isValid($s) {
        $s = str_replace(['()', '[]', '{}'], '', $s, $count);
        if($count == 0){
            return strlen($s)==0;
        }else{
            return $this->isValid($s);
        }
    }
}

$str = '()[]}';
echo(new Solution())->isValid($str);

这是我刷算法的 Github 仓库,喜欢的话可以给我一个 star,谢谢。

免费赞赏图片
免费赞赏图片
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目
  • 解析
  • 代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档