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


      参考教科书上的一个应用例子,用栈来分析一行输入中的括号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 }
  • 相关阅读:
    CCF_ 201403-2_窗口
    CCF_201503-2_数字排序
    [loj3346]交换城市
    [cf516E]Drazil and His Happy Friends
    [cf505E]Mr. Kitayuta vs. Bamboos
    [loj3343]超现实树
    [loj3331]选课
    [loj3342]制作菜品
    [loj3156]回家路线
    [loj3339]美食家
  • 原文地址:https://www.cnblogs.com/outerspace/p/10258250.html
Copyright © 2020-2023  润新知