לבדוק אם סוגריים מקוננים באופן תקין
נתונים סוגריים (), [], {} ומחרוזת שיכולה להכיל סוגריים האלה. לבדוק האם סוגריים מקוננים באופן תקין.
- public bool check(string str)
- {
- string brackets = "()[]{}";
- Stack<char> stack = new Stack<char>();
- for (int i = 0; i < str.Length; i++) {
- char breacket = str[i];
- int pos = brackets.IndexOf(breacket);
- if (pos == -1) continue;
- if(pos % 2 == 0) {
- stack.Push(brackets[pos + 1]);
- }
- else {
- if (stack.Count <= 0)
- return false;
- if (stack.Pop() != breacket)
- return false;
- }
- }
- return stack.Count == 0;
- }