leetcode算法-有效的括号

简介: leetcode算法-有效的括号

题目要求:

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


有效字符串需满足:


1、左括号必须用相同类型的右括号闭合。

2、左括号必须以正确的顺序闭合。


例如:


示例1:

输入:s="()"


输出:true


示例2:

输入:s="(){}"


输出:true


示例3:

输入:s="([)]"


输出:false


代码:

public class Solution {
    public bool IsValid(string s)
    {
                int n = s.Length;
                if (n % 2 == 1 || s.Length ==0)//判断是否为2的倍数,因为括号要成对出现
                {
                    return false;
                }
                for (int i = 0; i < n/2+1; i++)//外循环:因为括号是成对出现的,所以比较n/2+1次就可以比完全部都内容
                {
                    for (int j = 0; j < s.Length-1; j++)//内循环为具体比较括号是否正确
                    {
                        if ((s[j] == '(' && s[j+1]==')') || (s[j] =='[' && s[j+1]==']') || (s[j] == '{' && s[j + 1] == '}'))//判断括号是否为()[]{},成对的对比
                        {
                            s = s.Remove(j,2);//如果判断正确则把这对括号移出去
                        }
                    }
                }
                if (s.Length == 0)//直到把所有的括号移出去
                    return true;
                return false;
    }
}
目录
相关文章
|
20天前
|
算法
测试工程师的技能升级:LeetCode算法挑战与职业成长
这篇文章通过作者亲身体验LeetCode算法题的过程,探讨了测试工程师学习算法的重要性,并强调了算法技能对于测试职业成长的必要性。
42 1
测试工程师的技能升级:LeetCode算法挑战与职业成长
|
27天前
|
算法
LeetCode第22题括号生成
该文章介绍了 LeetCode 第 22 题括号生成的解法,通过回溯算法生成所有可能的括号组合,在递归过程中根据左右括号数量的条件进行剪枝,从而得到有效的括号组合。
LeetCode第22题括号生成
|
27天前
|
存储 算法
LeetCode第20题有效的括号
该文章介绍了 LeetCode 第 20 题有效的括号的解法,通过分析有效括号的特征,使用栈结构存储括号关系,判断遇到右边括号时栈顶是否有匹配的左边括号,从而解决问题,同时总结了栈的先进后出结构可用于解决有规律的符号匹配问题。
LeetCode第20题有效的括号
|
1月前
|
算法 Java
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
34 6
|
1月前
|
存储 算法 Java
LeetCode经典算法题:打家劫舍java详解
LeetCode经典算法题:打家劫舍java详解
40 2
|
1月前
|
人工智能 算法 Java
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
35 1
|
1月前
|
存储 算法 Java
LeetCode经典算法题:预测赢家+香槟塔java解法
LeetCode经典算法题:预测赢家+香槟塔java解法
32 1
|
15天前
|
算法 C++
第一周算法设计与分析 H : 括号匹配
这篇文章介绍了解决算法问题"括号匹配"的方法,通过使用栈来检查给定字符串中的括号是否合法匹配,并提供了相应的C++代码实现。
|
1月前
|
存储 算法 Java
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
55 0
|
1月前
|
算法 Java
LeetCode初级算法题:子数组最大平均数+二叉树的最小深度+最长连续递增序列+柠檬水找零
LeetCode初级算法题:子数组最大平均数+二叉树的最小深度+最长连续递增序列+柠檬水找零
30 0