No.20《有效的括号》;题型:栈,string
题目
题解思路(stack)
- 申请一个栈
stack<char> stk
,遍历字符串s,用stk来存放临时字符;
(1)若字符为"("、"["、"{",则将对应的")"、"]"、"}“入栈;
(2)若字符为”)"、"]"、"}",则判断其是否与stk.top()相等,若相等则pop(),否则返回false; - 若遍历完s后栈为空返回true,否则返回false。
题解代码
class Solution {
public:
bool isValid(string s) {
stack<char> stk;
for(int i=0;i<s.size();i++){
if(s[i]=='(')
stk.push(')');
else if(s[i]=='[')
stk.push(']');
else if(s[i]=='{')
stk.push('}');
else if (stk.empty()||s[i]!=stk.top())
return false;
else stk.pop();
}
return stk.empty();
}
};
时间复杂度:O(n)
空间复杂度:O(n)
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/daily-temperatures
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。