标签:例子 pre 文件夹 bre ring turn lse read push
参考教科书上的一个应用例子,用栈来分析一行输入中的括号brackets是否匹配。用stdin读取用户输入,并输出检查结果。exit 退出。
注意这行代码:
import ‘stack.dart‘;
// 需要与上一个Stack的例子在同一个文件夹下。
1 import ‘dart:io‘; 2 import ‘stack.dart‘; 3 4 void main() { 5 var ins = stdin.readLineSync(); 6 while (ins != ‘exit‘) { 7 print(check(ins)); 8 ins = stdin.readLineSync(); 9 } 10 } 11 12 bool check(String ins) { 13 var stack = Stack<String>(ins.length); 14 for (var i = 0; i < ins.length; i++) { 15 switch (ins[i]) { 16 case ‘{‘: 17 case ‘[‘: 18 case ‘(‘: 19 stack.push(ins[i]); 20 break; 21 case ‘)‘: 22 if (stack.isEmpty || stack.pop() != ‘(‘) return false; 23 break; 24 case ‘]‘: 25 if (stack.isEmpty || stack.pop() != ‘[‘) return false; 26 break; 27 case ‘}‘: 28 if (stack.isEmpty || stack.pop() != ‘{‘) return false; 29 break; 30 default: 31 break; 32 } 33 } 34 return stack.isEmpty; 35 }
标签:例子 pre 文件夹 bre ring turn lse read push
原文地址:https://www.cnblogs.com/outerspace/p/10258250.html