using System.Collections.Generic;
public static void Main()
ValidParantheses validParantheses = new ValidParantheses();
Console.WriteLine(validParantheses.InString(s1));
Console.WriteLine("----------------------------");
Console.WriteLine(validParantheses.InString(s2));
Console.WriteLine("----------------------------");
Console.WriteLine(validParantheses.InString(s3));
Console.WriteLine("----------------------------");
Console.WriteLine(validParantheses.InString(s5));
Console.WriteLine("----------------------------");
Console.WriteLine(validParantheses.InString(s4));
Console.WriteLine("----------------------------");
public class ValidParantheses
private Dictionary<char,char> _paranthesesDictionary;
public ValidParantheses()
_paranthesesDictionary = GetParanthesesDictionary();
public bool InString(string line)
Stack<char> stack = new Stack<char>();
if(c == '{' || c == '(' || c == '[')
if(stack.Count==0) return false;
if(stack.Peek() == _paranthesesDictionary[c])
if(stack.Count == 0) return true;
private Dictionary<char,char> GetParanthesesDictionary()
Dictionary<char,char> dictionary = new Dictionary<char,char>();