c++算法练习--栈
## 每日水一题### 链接:https://leetcode-cn.com/problems/permutations
```
给定一个只包括 '(',')','{','}','[',']'的字符串,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"
输出: true
示例 2:
输入: "()[]{}"
输出: true
示例 3:
输入: "(]"
输出: false
示例 4:
输入: "([)]"
输出: false
示例 5:
输入: "{[]}"
输出: true
```
使用栈来存字符串,当碰到闭括号时,判断栈顶是否为相应的开括号
```
bool isValid(string s) {
stack<char> st;
for(int i = 0 ; i < s.length(); i ++){
if(s == '(' || s == '{' || s == '[') st.push(s);
if(s == ')'){
if(st.size() != 0 && st.top() == '(') st.pop();
else return false;
}
if(s == '}'){
if(st.size() != 0 && st.top() == '{') st.pop();
else return false;
}
if(s == ']'){
if(st.size() != 0 && st.top() == '[') st.pop();
else return false;
}
}
if(st.size() != 0) return false;
return true;
}
``` 北溟鱼 发表于 2019-7-29 11:20
弱弱问一句,最后存文件后缀名是啥
cpp,这个只是核心代码,没有其他的头文件,命名空间之类的 Cl_Slaid 发表于 2019-7-29 11:21
碰到闭括号再判断就行了,排除掉错误情况就行了orz...比我写得精简
哈哈哈,大家一起水题 烫烫烫烫烫
屯屯屯屯屯 不对,这个栈是STL,不能屯屯屯
原谅我水错了…… 多谢大佬分享 JuncoJet 发表于 2019-7-29 10:00
不对,这个栈是STL,不能屯屯屯
原谅我水错了……
我还在想STL怎么就屯起来了{:301_997:} 感谢大佬分享 表示我看不懂 大佬,我也想刷Leetcode,有APP可以刷吗 liuminxin45 发表于 2019-7-29 10:56
大佬,我也想刷Leetcode,有APP可以刷吗
好像是没有APP的,我一直都是在网站上刷的 JuncoJet 发表于 2019-7-29 10:00
不对,这个栈是STL,不能屯屯屯
原谅我水错了……
哈哈哈哈
页:
[1]
2