红土地生态食业:括号配对(paren.pas)

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 07:45:50
输入一个由()<>{}[]这8种字符构成的字符串,例如:([])、{[[)}和>{}<等,如果这个式子符合我们一般使用括号的规律(不考虑大括号必须在中括号外,也中括号必须在小括号外这样的规定,也就是说括号的等级都是一样的),就输出YES。例如([])和<<{}>[]>等都是合法的。否则,如果式子不符合我们一般使用括号的规律,就输出NO。例如{[[)}、>{}<和<<{>}>等都是不合法的。
输入:paren.in
3行,每行一个字符串,长度不超过255,保证只含有()<>{}[]这8种字符。
输出:paren.out
3行,YES或NO,表示式子是否合法。

样例:
输入
{)
[({<>})]
><
输出
NO
YES
NO

程序体用堆栈实现。输入输出用重定向。

思路:(程序自己写吧)
1、读入一行数据,按顺序处理;
2、遇到{[<(之一,入栈;
遇到},栈顶不是{,输出NO,跳至4,否则出栈;
遇到],栈顶不是[,输出NO,跳至4,否则出栈;
遇到>,栈顶不是<,输出NO,跳至4,否则出栈;
遇到),栈顶不是(,输出NO,跳至4,否则出栈;
3、一行结束时,栈不为空,输出NO,否则输出YES;
4、清空栈,读入下一行。