Sha256: 6884747d0b3edfe7de6de8a8ae3266af7fc62601e959864de405bde4ebbe8cec

Contents?: true

Size: 495 Bytes

Versions: 267

Compression:

Stored size: 495 Bytes

Contents

import ceylon.collection { ArrayList }

Map<Character, Character> openFor = map {'}' -> '{', ')' -> '(', ']' -> '['};
Set<Character> opens = set(openFor.items);

Boolean balanced(String brackets) {
  value expectedOpens = ArrayList<Character>();
  for (c in brackets) {
    if (opens.contains(c)) {
      expectedOpens.push(c);
    } else if (exists open = openFor[c]) {
      if ((expectedOpens.pop() else '!') != open) {
        return false;
      }
    }
  }
  return expectedOpens.empty;
}

Version data entries

267 entries across 267 versions & 1 rubygems

Version Path
trackler-2.2.1.116 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
trackler-2.2.1.115 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
trackler-2.2.1.114 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
trackler-2.2.1.113 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
trackler-2.2.1.111 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
trackler-2.2.1.110 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
trackler-2.2.1.109 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
trackler-2.2.1.108 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
trackler-2.2.1.107 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
trackler-2.2.1.106 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
trackler-2.2.1.105 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
trackler-2.2.1.104 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
trackler-2.2.1.103 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
trackler-2.2.1.102 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
trackler-2.2.1.101 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
trackler-2.2.1.100 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
trackler-2.2.1.99 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
trackler-2.2.1.98 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
trackler-2.2.1.97 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon
trackler-2.2.1.96 tracks/ceylon/exercises/bracket-push/example/Brackets.ceylon