Skip to content

Instantly share code, notes, and snippets.

@vikmeup
Created May 4, 2016 23:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vikmeup/ca7d102923af2d900b8ef7a58e88572d to your computer and use it in GitHub Desktop.
Save vikmeup/ca7d102923af2d900b8ef7a58e88572d to your computer and use it in GitHub Desktop.
func isValid(s: String) -> Bool {
struct Stack<Element> {
var items = [Element]()
mutating func push(item: Element) {
items.append(item)
}
mutating func pop() -> Element {
return items.removeLast()
}
}
var stack = Stack<Character>()
for (_, v) in s.characters.enumerate() {
switch v {
case "{", "[", "(":
stack.push(v)
break
case "}":
if stack.items.count == 0 || stack.pop() != "{" {
return false
}
break
case "]":
if stack.items.count == 0 || stack.pop() != "[" {
return false
}
break
case ")":
if stack.items.count == 0 || stack.pop() != "(" {
return false
}
break
default:
continue
}
}
if stack.items.count != 0 {
return false
}
return true
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment