DEV Community

Harsh Prajapat
Harsh Prajapat

Posted on

LeetCode #20 ✅ Valid Parentheses

✅ Valid Parentheses Solution 1

func validParenthesesIsValid(_ s: String) -> Bool {
  var stack = [Character]()
  let map: [Character: Character] = [")" : "(", "}" : "{", "]" : "["]

  for char in s {
    if map.values.contains(char) {
      stack.append(char)
    } else if let last = stack.last, map[char] == last {
      stack.removeLast()
    } else {
      return false
    }
  }

  return stack.isEmpty
}

let result = validParenthesesIsValid("()[]{}")
print(result) // Output: True
Enter fullscreen mode Exit fullscreen mode

✅ Valid Parentheses Solution 2

func validParenthesesIsValid(_ s: String) -> Bool {
  var stack = [Character]()
  let paris: [Character: Character] = [")":"(", "}":"{", "]":"["]

  for char in s {
    if let match = paris[char], !stack.isEmpty, stack.last == match {
      stack.removeLast()
    } else {
      stack.append(char)
    }
  }
  return stack.isEmpty
}
Enter fullscreen mode Exit fullscreen mode

Top comments (0)