Module: 正确的括号顺序 (RSP)


Problem

2 /6


欧米茄λ演算

Theory Click to read/hide

常规括号序列由一种或多种类型的左括号和右括号组成,每个左括号都有一个右括号,并且(在多种类型的情况下)它们的类型不重叠。
正确的SP: 
( ( ) ) ( ) ( ) 
{ } [ ( ) ] ( ) 
{ [ ( { } ) ] } 
无效SP: 
) ) ( ( ) ) ( ( 
{ [ ( ] ) } 
( ( ] } 
 
要检查一个括号序列是否为同一类型,只需检查平衡即可。
也就是说,我们开始一个等于零的变量(balance)。然后我们遍历字符串(如果你不知道该怎么做 - 运行,愚蠢!),当它遇到左括号时增加余额并在遇到右括号时减少它。如果在任何阶段余额变为负数或在最后不等于零,则序列是错误的。 

Problem

Omega lambda 演算 - “British Scientists, Inc”的创新发展在形式逻辑领域。 omega-lambda 演算的任何表达式都由括号和项组成(项可以是拉丁字母的任意序列)。
Izzy 缩减是对此类表达式的操作之一。执行时会检查表达式中的括号顺序是否正确。这些条款将被忽略。如果序列正确,它就变成术语 gg,如果不正确,它就变成术语 wp。 
使用不超过 107 字符的 omega-lambda 表达式作为输入。您需要显示其 izzy 缩减的结果。
 

 

例子
<头> <日># <正文>
输入 输出
1 a(b(xx)f(g(x))m(y)) gg