深圳做英文网站,哪些企业需要网站建设,手机的网站建设目标是什么,jsp开发网站1 题目描述 图1 题目描述 2 题目解读 给定的字符串只包含括号#xff0c;判断这个字符串中的括号是否按照正确顺序出现#xff0c;即这个字符串是否有效。
3 解法一#xff1a;栈 C的STL中的stack#xff0c;在解题时非常好用。
3.1 解题思路 使用栈stk#xff0c;并枚举…1 题目描述 图1 题目描述 2 题目解读 给定的字符串只包含括号判断这个字符串中的括号是否按照正确顺序出现即这个字符串是否有效。
3 解法一栈 C的STL中的stack在解题时非常好用。
3.1 解题思路 使用栈stk并枚举字符串s的每一个字符。如果字符c是右括号就进行以下判断否则将其压入stk栈中如果栈stk非空且栈顶字符是对应的左括号则弹出stk栈顶元素否则返回false。
3.2 设计代码
class Solution {
public:bool isValid(string s) {int n s.size();if (n % 2 1) {return false;}unordered_mapchar, char pairs {{), (},{], [},{}, {}};stackchar stk;for (char ch : s) {if (pairs.count(ch)) {if (stk.empty() || stk.top() ! pairs[ch]) {return false;}stk.pop();}else {stk.push(ch);}}return stk.empty();}
};
3.3 复杂度分析
时间复杂度。其中n是字符串s的长度。空间复杂度。其中表示字符集本题中字符串只包含6种括号6。代码中使用了栈和哈希表空间复杂度分别为和将这两个空间复杂度相加则得到总空间复杂度。
3.4 提交结果 图2 提交结果 4 解题心得
C的STL中栈stack在解题时非常好用。哈希表在使用时有空间复杂度。哈希表的count()方法可以在哈希表中查找元素。