描述
在一个远离人类的世界中,有一群牛正在进行秘密通信。它们使用一种特殊的括号组合作为加密通信的形式。每一组加密信息均包括以下字符:'(','{','[',')','}',']'。
加密信息需要满足以下有效性规则:
- 每个左括号必须使用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
- 每个右括号都有一个对应的相同类型的左括号。
编写一个函数,给定一个字符串 s,判断这群牛的加密通信是否有效。
示例1
输入:
"({})"
返回值:
true
示例2
输入:
"){"
返回值:
false
#include <asm-generic/errno-base.h>
#include <iterator>
#include <stack>
#include <vector>
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return bool布尔型
*/
bool is_valid_cow_communication(string s) {
if (s.size() == 0) return true;
stack<char> st;
for (int i = 0; i < s.size(); i++) {
if (s[i] == '{' || s[i] == '[' || s[i] == '(') st.push(s[i]);
else {
if (s[i] == '}' && st.top() == '{' ||
s[i] == ']' && st.top() == '[' ||
s[i] == ')' && st.top() == '('
) st.pop();
else return false;
}
}
if (st.empty()) return true;
else return false;
}
};