Skip to content

Instantly share code, notes, and snippets.

@minsOne
Created April 19, 2015 06:22
Show Gist options
  • Select an option

  • Save minsOne/ae04b2c6ba09924f8935 to your computer and use it in GitHub Desktop.

Select an option

Save minsOne/ae04b2c6ba09924f8935 to your computer and use it in GitHub Desktop.
import Foundation
var checkOpenCloseBracket:((String, String) -> Bool)!
checkOpenCloseBracket = { (openBracket, closeBracket) in
var result: Bool
switch (openBracket, closeBracket) {
case _ where openBracket == "{" && closeBracket == "}":
result = true
case _ where openBracket == "[" && closeBracket == "]":
result = true
case _ where openBracket == "(" && closeBracket == ")":
result = true
default:
result = false
}
return result
}
func checkBracket(var brackets: String) {
var list: [String] = []
tokenLoop: for (index, bracket) in enumerate(brackets) {
switch String(bracket) {
case let token where (token == "{") || (token == "[") || (token == "("):
list += [token]
case let token where (token == "}") || (token == "]") || (token == ")"):
let openBracket = list.removeLast()
let result = checkOpenCloseBracket(openBracket, token)
if !result {
println("Error, index : \(index)")
break tokenLoop
}
default:
break
}
}
if !list.isEmpty {
println("Error!, \(list)")
}
}
checkBracket("[]{}()")
checkBracket("[]{()}")
checkBracket("[]{(}}")
checkBracket("[]{{{{{{{{{{{}}}}}}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment