zoukankan      html  css  js  c++  java
  • 数据结构与算法之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 }
  • 相关阅读:
    945.使数组唯一的最小增量
    用两个栈实现队列
    MySQL的约束
    数据库的设计
    约束
    DQL查询
    数据库的基本概念
    SQL基础语法
    MySQL基础
    java的注解和反射
  • 原文地址:https://www.cnblogs.com/outerspace/p/10258250.html
Copyright © 2011-2022 走看看