0
点赞
收藏
分享

微信扫一扫

力扣-有效的括号

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

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。
  2. 左括号必须以正确的顺序闭合。
  3. 每个右括号都有一个对应的相同类型的左括号。

 

示例 1:

输入:s = "()"
输出:true

示例 2:

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

示例 3:

输入:s = "(]"
输出:false

 

提示:

  • 1 <= s.length <= 104
  • s 仅由括号 '()[]{}' 组成

/**
 * 判断给定字符串中的括号是否匹配有效。
 *
 * @param s 要判断的字符串
 * @return 如果括号匹配有效,返回true;否则返回false
 */
public boolean isValid(String s) {
    // 如果字符串长度为0,则视为括号匹配有效,直接返回true
    if (s.length() == 0) {
        return true;
    }
    // 计算循环次数,只需判断字符串长度的一半即可
    int i1 = s.length() / 2;
    // 循环移除匹配的括号对直到无法再移除
    for (int i = 0; i < i1; i++) {
        s = s.replace("()", "").replace("[]", "").replace("{}", "");
    }
    // 判断最终字符串长度是否为0,若为0则括号匹配有效,返回true;否则无效,返回false
    return s.length() == 0;
}

举报

相关推荐

0 条评论