using System.Collections.Generic;
public static void Main()
var valids = new List<string>(){
var invalids = new List<string>(){
foreach (var v in valids){
var x = Program.isWellFormed(v);
Console.Out.WriteLine("Valid string has result of: " + x);
foreach (var v in invalids)
Console.Out.WriteLine("Invalid string has result of: " + x);
public static bool isWellFormed(string s){
var lefts = new Stack<char>();
foreach (var c in s.ToCharArray())
public static bool isPaired(char left, char right){
List<char> lefts = new List<char>(){ '(', '[', '{' };
List<char> rights = new List<char>() { ')', ']', '}' };
for (int i=0; i<lefts.Count; i++){
return right == rights[i];
public static bool IsLeft(char c){
List<char> lefts = new List<char>(){ '(', '[', '{' };
return lefts.Contains(c);
public static bool IsRight(char c)
List<char> rights = new List<char>() { ')', ']', '}' };
return rights.Contains(c);