Balanced Paranthesis
unknown
plain_text
2 years ago
1.2 kB
11
Indexable
using System;
using System.Collections.Generic;
using System.Collections;
class Program
{
static void Main(string[] args)
{
char[] chars = Console.ReadLine().ToCharArray();
// half in stack, half in queue
Stack<char> firstHalf = new Stack<char>();
Queue<char> secondHalf = new Queue<char>();
int length = chars.Length;
for (int i = 0; i < length / 2; i++) // if length = 8, starts from 0 and ends at 4 (0, 1, 2, 3 incl)
{
firstHalf.Push(chars[i]);
}
for (int j = length / 2; j < length; j++) // if length = 8, starts from 4 and ends at 7 (4, 5, 6, 7 incl)
{
secondHalf.Enqueue(chars[j]);
}
bool equal = true;
while (firstHalf.Count > 0)
{
char charFromStack = firstHalf.Pop();
char charFromQueue = secondHalf.Dequeue();
if (charFromStack != charFromQueue)
{
equal = false; break;
}
}
if (equal)
{
Console.WriteLine("YES");
}
else
{
Console.WriteLine("NO");
}
}
}Editor is loading...
Leave a Comment