add: 230410

This commit is contained in:
Eatswap 2023-04-10 11:22:27 +08:00
parent 1c281801e8
commit a9ff3c5bc0
Signed by: Eatswap
GPG Key ID: BE661106A1F3FA0B
2 changed files with 48 additions and 1 deletions

47
cpp/2304/230410.cpp Normal file
View File

@ -0,0 +1,47 @@
#include <stack>
#include <string>
/**
* 20. Valid Parentheses
*
* Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
*
* An input string is valid if:
*
* Open brackets must be closed by the same type of brackets.
* Open brackets must be closed in the correct order.
* Every close bracket has a corresponding open bracket of the same type.
*/
class Solution {
public:
static bool isValid(const std::string&);
};
bool Solution::isValid(const std::string& s) {
std::stack<char> sc;
for (char ch : s) {
switch (ch) {
case '[':
case '(':
case '{':
sc.push(ch);
break;
case ']':
case ')':
case '}':
if (sc.empty() || sc.top() != (ch ^ (ch < 64 ? 1 : 6)))
return false;
sc.pop();
break;
default:
return false;
}
}
return sc.empty();
}
int main() {
Solution::isValid("()[]{}");
return 0;
}

View File

@ -4,4 +4,4 @@ PROJECT(2304)
SET(CMAKE_CXX_STANDARD 23)
SET(CMAKE_EXPORT_COMPILE_COMMANDS true)
ADD_EXECUTABLE(2304 230410-CN.cpp)
ADD_EXECUTABLE(2304 230410.cpp)