Почему выполняется условие if?
Не могу понять, почему выполняется условие
if (st != '(' || st != '[' || st != '{' ||
st != ')' || st != ']' || st != '}')
причем выполняется только на закрывающие скобки. Вот полный код
static void CheckBrackets(string str)
{
Stack<char> stack = new Stack<char>();
int count = 0;
foreach (var st in str)
{
if (st == '(' || st == '[' || st == '{')
{
stack.Push(st);
++count;
continue;
}
if (st != '(' || st != '[' || st != '{' ||
st != ')' || st != ']' || st != '}')
{
Console.WriteLine("зашел сюда");
continue;
}
var peek = stack.Peek();
if (peek == '(' && st == ')'
|| peek == '{' && st == '}'
|| peek == '[' && st == ']')
{
stack.Pop();
++count;
continue;
}
if (peek == '(' && st != ')'
|| peek == '{' && st != '}'
|| peek == '[' && st != ']')
{
Console.WriteLine(++count);
return;
}
}
if (stack.Count != 0)
Console.WriteLine(count);
else Console.WriteLine("Success");
}
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
if (st != '(' && st != '[' && st != '{' &&
st != ')' && st != ']' && st != '}')
или
if (!(st == '(' || st == '[' || st == '{' ||
st == ')' || st == ']' || st == '}'))
