码迷,mamicode.com
首页 > 编程语言 > 详细

数据结构与算法之Stack(栈)的应用——in dart

时间:2019-01-12 01:05:07      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:例子   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 }

 

数据结构与算法之Stack(栈)的应用——in dart

标签:例子   pre   文件夹   bre   ring   turn   lse   read   push   

原文地址:https://www.cnblogs.com/outerspace/p/10258250.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!