Advertisement
amitsen01ei

valid_parenthesis.cpp

Aug 13th, 2023
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | Source Code | 0 0
  1. bool is_valid_paren (string s) {
  2.  
  3.     map<char,char> paren_map = {{ ')' , '('}, {'}', '{'}, {']', '['}};
  4.  
  5.     if (s[0] == ')' || s[0] == '}' || s[0] == ']') {
  6.         return false;
  7.     }
  8.  
  9.     stack<char> char_stack;
  10.     size_t s_len = s.length();
  11.  
  12.     for (int i = 0; i < s_len; i++) {
  13.         if (s[i] == '(' || s[i] == '{' || s[i] == '[') {
  14.             char_stack.push(s[i]);
  15.         } else if (s[i] == ')' || s[i] == '}' || s[i] == ']') {
  16.             if (char_stack.empty()) {
  17.                 return false;
  18.             } else {
  19.                 char open = char_stack.top();
  20.                 char_stack.pop();
  21.                 if (open != paren_map[s[i]]) {
  22.                     return false;
  23.                 }
  24.             }
  25.         }
  26.     }
  27.  
  28.     return char_stack.empty();
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement