【栈】【20. 有效的括号】【简单】

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

  • 有效字符串需满足:
    左括号必须用相同类型的右括号闭合。
    左括号必须以正确的顺序闭合。
    注意空字符串可被认为是有效字符串。

      示例 1:
      输入: "()"
      输出: true
      
      示例 2:
      输入: "()[]{}"
      输出: true
      
      示例 3:
      输入: "(]"
      输出: false
      
      示例 4:
      输入: "([)]"
      输出: false
      
      示例 5:
      输入: "{[]}"
      输出: true
    

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/valid-parentheses
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

  • 个人题解:

    • 遍历字符串{
      • 若为左括号:{
        将左括号入栈;
        }
      • 若为右括号:{
        若栈为空返回false;
        弹出栈顶元素,若不是相应的右括号,则返回false;
        }

    }
    遍历结束若栈中无元素则返回true;

  • 个人代码:

public class Solution {
    public bool IsValid(string s) {
       Dictionary<char, char> doc = new Dictionary<char, char>();
            doc.Add('(',')');
            doc.Add('[', ']');
            doc.Add('{', '}');
        Stack<char> stack = new Stack<char>();
            for (int i = 0; i < s.Length; i++)
            {
                char c = s[i];
                if(doc.ContainsKey(s[i]))
                    stack.Push(s[i]);
                else
                {
                    if(stack.Count==0) return false;
                    char left = stack.Pop();
                    if(c!=doc[left])return false;               
                }
                
            }
                return stack.Count==0;
    }
}
发布了106 篇原创文章 · 获赞 94 · 访问量 28万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览