elena1234

BalancedParenthesis

Dec 24th, 2020 (edited)
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.88 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace BalancedParenthesis
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             var stackOpenParentheses = new Stack<char>();
  11.             string expression = Console.ReadLine();
  12.             foreach (char currentSymbol in expression)
  13.             {
  14.                 if (currentSymbol == '{' || currentSymbol == '(' || currentSymbol == '[')
  15.                 {
  16.                     stackOpenParentheses.Push(currentSymbol);
  17.                 }
  18.  
  19.                 else if (currentSymbol == '}' || currentSymbol == ')' || currentSymbol == ']')
  20.                 {
  21.                     if(stackOpenParentheses.TryPeek(out char lastSymbolInTheStack))
  22.                     {
  23.                         lastSymbolInTheStack = stackOpenParentheses.Peek();
  24.                     }
  25.  
  26.                     else
  27.                     {
  28.                         Console.WriteLine("NO");
  29.                         return;
  30.                     }
  31.  
  32.                     if (lastSymbolInTheStack == '{' && currentSymbol =='}')
  33.                     {
  34.                         stackOpenParentheses.Pop();                                            
  35.                     }
  36.  
  37.                     else if (lastSymbolInTheStack == '(' && currentSymbol == ')')
  38.                     {
  39.                         stackOpenParentheses.Pop();                      
  40.                     }
  41.  
  42.                     else if (lastSymbolInTheStack == '[' && currentSymbol == ']')
  43.                     {
  44.                         stackOpenParentheses.Pop();                      
  45.                     }
  46.  
  47.                     else
  48.                     {
  49.                         Console.WriteLine("NO");
  50.                         return;
  51.                     }
  52.                 }
  53.             }
  54.  
  55.             Console.WriteLine("YES");            
  56.         }
  57.     }
  58. }
Add Comment
Please, Sign In to add comment